學習 WCF (6)--學習調用WCF服務的各種方法

來自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html

根據不同的情況,我們可以用不同的方法調用WCF服務,本文簡單總結了一下調用WCF的一些方法(代理類,Ajax...),分享給大家。

開發工具調用WCF

這中方法很方便也很簡單,很多工作VS就幫我們完成了。相信大家也不會對這種方法陌生。這里簡單提一下。打開VS,在項目中添加服務引用:

在config中自動聲明了有關服務的節點信息,這樣VS就創建了調用服務的代理:

ServiceReference1.Service1Client?poxy?=?new?ServiceReference1.Service1Client();
poxy.服務中相應的方法。


C#動態調用WCF

這個方法比較實用,可以通過工具或代碼生成代理類Proxy.cs,來和WCF進行交互。不需要人為的手動進行服務的引用。生成代理類,這里我里用了工具:SvcUtil.exe,沒有的朋友可以下載:SvcUtil.rar
使用方法很簡單,只需將SvcUtil.exe隨便放置一個位置(這里放在C:/新建文件夾)。在命令提示行中輸入如下指令:

這里要注意的是SvcUtil.exe后面是服務的地址,會在工具所在的目錄下生成代理類文件:


工具會給我們生成一個代理類文件,代碼如下:

Code
//------------------------------------------------------------------------------
//?<auto-generated>
//?????此代碼由工具生成。
//?????運行庫版本:2.0.50727.1433
//
//?????對此文件的更改可能會導致不正確的行為,并且如果
//?????重新生成代碼,這些更改將會丟失。
//?</auto-generated>
//------------------------------------------------------------------------------

namespace?LtraSrchLib.DAL
{
????
using?System.Runtime.Serialization;
????
????
????[System.Diagnostics.DebuggerStepThroughAttribute()]
????[System.CodeDom.Compiler.GeneratedCodeAttribute(
"System.Runtime.Serialization",?"3.0.0.0")]
????[System.Runtime.Serialization.DataContractAttribute(Name
="DbModal",?Namespace="http://schemas.datacontract.org/2004/07/LtraSrchLib.DAL")]
????
public?partial?class?DbModal?:?object,?System.Runtime.Serialization.IExtensibleDataObject
????{
????????
????????
private?System.Runtime.Serialization.ExtensionDataObject?extensionDataField;
????????
????????
private?string?ArtReferenceField;
????????
????????
private?string?ArticalLevelField;
????????
????????
private?string?ChineseAbstractField;
????????
????????
private?string?ChineseKeywordField;
????????
????????
private?string?ChineseTitleField;
????????
????????
private?string?DownLoadPathField;
????????
????????
private?string?EnglishAbstractField;
????????
????????
private?string?EnglishKeywordField;
????????
????????
private?string?EnglishTitleField;
????????
????????
private?string?FileClassField;
????????
????????
private?string?IdField;
????????
????????
private?string?PageNumField;
????????
????????
private?string?PublishedDateField;
????????
????????
private?string?SchoolField;
????????
????????
private?string?SpecialtyField;
????????
????????
private?string?StateField;
????????
????????
private?string?StudentNameField;
????????
????????
private?string?StudentNumField;
????????
????????
private?string?StudyToField;
????????
????????
private?string?TeacherField;
????????
????????
private?string?UpLoadDateField;
????????
????????
public?System.Runtime.Serialization.ExtensionDataObject?ExtensionData
????????{
????????????
get
????????????{
????????????????
return?this.extensionDataField;
????????????}
????????????
set
????????????{
????????????????
this.extensionDataField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?ArtReference
????????{
????????????
get
????????????{
????????????????
return?this.ArtReferenceField;
????????????}
????????????
set
????????????{
????????????????
this.ArtReferenceField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?ArticalLevel
????????{
????????????
get
????????????{
????????????????
return?this.ArticalLevelField;
????????????}
????????????
set
????????????{
????????????????
this.ArticalLevelField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?ChineseAbstract
????????{
????????????
get
????????????{
????????????????
return?this.ChineseAbstractField;
????????????}
????????????
set
????????????{
????????????????
this.ChineseAbstractField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?ChineseKeyword
????????{
????????????
get
????????????{
????????????????
return?this.ChineseKeywordField;
????????????}
????????????
set
????????????{
????????????????
this.ChineseKeywordField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?ChineseTitle
????????{
????????????
get
????????????{
????????????????
return?this.ChineseTitleField;
????????????}
????????????
set
????????????{
????????????????
this.ChineseTitleField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?DownLoadPath
????????{
????????????
get
????????????{
????????????????
return?this.DownLoadPathField;
????????????}
????????????
set
????????????{
????????????????
this.DownLoadPathField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?EnglishAbstract
????????{
????????????
get
????????????{
????????????????
return?this.EnglishAbstractField;
????????????}
????????????
set
????????????{
????????????????
this.EnglishAbstractField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?EnglishKeyword
????????{
????????????
get
????????????{
????????????????
return?this.EnglishKeywordField;
????????????}
????????????
set
????????????{
????????????????
this.EnglishKeywordField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?EnglishTitle
????????{
????????????
get
????????????{
????????????????
return?this.EnglishTitleField;
????????????}
????????????
set
????????????{
????????????????
this.EnglishTitleField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?FileClass
????????{
????????????
get
????????????{
????????????????
return?this.FileClassField;
????????????}
????????????
set
????????????{
????????????????
this.FileClassField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?Id
????????{
????????????
get
????????????{
????????????????
return?this.IdField;
????????????}
????????????
set
????????????{
????????????????
this.IdField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?PageNum
????????{
????????????
get
????????????{
????????????????
return?this.PageNumField;
????????????}
????????????
set
????????????{
????????????????
this.PageNumField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?PublishedDate
????????{
????????????
get
????????????{
????????????????
return?this.PublishedDateField;
????????????}
????????????
set
????????????{
????????????????
this.PublishedDateField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?School
????????{
????????????
get
????????????{
????????????????
return?this.SchoolField;
????????????}
????????????
set
????????????{
????????????????
this.SchoolField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?Specialty
????????{
????????????
get
????????????{
????????????????
return?this.SpecialtyField;
????????????}
????????????
set
????????????{
????????????????
this.SpecialtyField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?State
????????{
????????????
get
????????????{
????????????????
return?this.StateField;
????????????}
????????????
set
????????????{
????????????????
this.StateField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?StudentName
????????{
????????????
get
????????????{
????????????????
return?this.StudentNameField;
????????????}
????????????
set
????????????{
????????????????
this.StudentNameField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?StudentNum
????????{
????????????
get
????????????{
????????????????
return?this.StudentNumField;
????????????}
????????????
set
????????????{
????????????????
this.StudentNumField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?StudyTo
????????{
????????????
get
????????????{
????????????????
return?this.StudyToField;
????????????}
????????????
set
????????????{
????????????????
this.StudyToField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?Teacher
????????{
????????????
get
????????????{
????????????????
return?this.TeacherField;
????????????}
????????????
set
????????????{
????????????????
this.TeacherField?=?value;
????????????}
????????}
????????
????????[System.Runtime.Serialization.DataMemberAttribute()]
????????
public?string?UpLoadDate
????????{
????????????
get
????????????{
????????????????
return?this.UpLoadDateField;
????????????}
????????????
set
????????????{
????????????????
this.UpLoadDateField?=?value;
????????????}
????????}
????}
}


[System.CodeDom.Compiler.GeneratedCodeAttribute(
"System.ServiceModel",?"3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(ConfigurationName
="ISrchLib")]
public?interface?ISrchLib
{
????
????[System.ServiceModel.OperationContractAttribute(Action
="http://tempuri.org/ISrchLib/SelNoteBySql",?ReplyAction="http://tempuri.org/ISrchLib/SelNoteBySqlResponse")]
????LtraSrchLib.DAL.DbModal[]?SelNoteBySql(
string?ServiceName,?string?InfoStr);
}

[System.CodeDom.Compiler.GeneratedCodeAttribute(
"System.ServiceModel",?"3.0.0.0")]
public?interface?ISrchLibChannel?:?ISrchLib,?System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute(
"System.ServiceModel",?"3.0.0.0")]
public?partial?class?SrchLibClient?:?System.ServiceModel.ClientBase<ISrchLib>,?ISrchLib
{
????
????
public?SrchLibClient()
????{
????}
????
????
public?SrchLibClient(string?endpointConfigurationName)?:?
????????????
base(endpointConfigurationName)
????{
????}
????
????
public?SrchLibClient(string?endpointConfigurationName,?string?remoteAddress)?:?
????????????
base(endpointConfigurationName,?remoteAddress)
????{
????}
????
????
public?SrchLibClient(string?endpointConfigurationName,?System.ServiceModel.EndpointAddress?remoteAddress)?:?
????????????
base(endpointConfigurationName,?remoteAddress)
????{
????}
????
????
public?SrchLibClient(System.ServiceModel.Channels.Binding?binding,?System.ServiceModel.EndpointAddress?remoteAddress)?:?
????????????
base(binding,?remoteAddress)
????{
????}
????
????
public?LtraSrchLib.DAL.DbModal[]?SelNoteBySql(string?ServiceName,?string?InfoStr)
????{
????????
return?base.Channel.SelNoteBySql(ServiceName,?InfoStr);
????}
}

把這個代理類考到客戶端程序就可以對WCF進行調用了,這里建議大家用工具生成,自己手寫可能會出現錯誤,生成后如果做稍許的改動,都可能造成錯誤,影響到信道數據的傳輸。(但是這里說明一下:這個工具在xp下使用沒問題,但是在2003下使用會有問題,不知是不是我2003統的問題)
停在這里就不動了,不知為啥。
大家這里可能會想到用代碼生成代理類的方法,但是我試了幾次沒有成功,文件生成了但是沒有內容。不知道為什么。高手指點。
有了這個代理類,工作就好做啦!通過這個代理類就可以調用WCF了。

Code
private?void?CreateClientInstanceByProxy(Binding?bind,?EndpointAddress?address,?string?a,?string?b)
{
?????ISrchLib?ws?
=?new?SrchLibClient(bind,?address);//傳入binding和服務的URI

?????Repeater1.DataSource?
=?ws.SelNoteBySql(a,?b);//a,b是服務中方法的參數
?????Repeater1.DataBind();
???????????
}

這樣,如果多個服務的方法相同,只是address不同(分布在不同的服務器)。這樣的調用是很不錯的選擇!
除此之外,我們可以采用通道工廠的方式生成客戶端服務對象實例,但是前提還是需要上面生成的代理類的幫助。大家可以參看大牛Robin的文章(下面有鏈接)。

ASP.NET AJAX調用WCF

利用ASP.NET AJAX調用WCF:

我們新建網站一個工程,在其添加啟用了Ajax的WCF服務。這樣配置文件中會自動的為我們添加關鍵的節點。

服務中我只是簡單的聲明了一個方法:

Code
public?class?ajaxService
{
????
//?添加?[WebGet]?屬性以使用?HTTP?GET
????[OperationContract]
????
public?void?DoWork()
????{
????????
return;
????}

????[OperationContract]
????
public?string?SayHello(string?name)
????{
????????
return?"hello:"+name;
????}

????
//?在此處添加更多操作并使用?[OperationContract]?標記它們
}

在瀏覽器中預覽我們的服務,然后在地址后加上/js。這樣就可以生成用來訪問WCF的js代理。

生成js代碼
再來看一下前臺頁面中的代碼:

Code
<html?xmlns="http://www.w3.org/1999/xhtml">
<head?runat="server">
????
<title>無標題頁</title>
????
????
<script?type="text/javascript">
????
function?sayhello()
????{
??????
var?name?=?$get("txtname").value;
??????ajaxService.SayHello(name,onSuccess,onFailed);??????
????}
????
function?onSuccess(res)
????{
???????alert(res);
????}
????
function?onFailed(res)
????{
????????alert(res);
????}
????
</script>
</head>
<body>
????
<form?id="form1"?runat="server">
????
<div>
????????
<asp:ScriptManager?ID="ScriptManager1"?runat="server">
????????????
<Scripts>
????????????????
<asp:ScriptReference?Path="~/js/ajaxwcf.js"?/>
????????????</Scripts>
????????
</asp:ScriptManager>
????
</div>
????
????
<div>
????
<p>name:<input?id="txtname"?type="text"?/></p>
????
<p><input?id="Button1"?type="button"?value="hello"??onclick="sayhello()"/></p>
????
</div>
????
</form>
</body>
</html>

將ScriptManager中的<script>的path設定為剛生成的js文件。這樣,腳本中聲明的方法就可以調用WCF的方法了。運行一下:

這樣就實現了ASP.NET AJAX對WCF的調用。

JS(jQuery)調用WCF

這里實現的思想和ASP.NET Ajax的有些類似,只不過有一些工作需要我們自己來完成,并且這個方法很靈活。
首先是WCF上:我們要在類和方法前進行如下的聲明:

Code
[ServiceContract(Namespace?=?"")]
????[AspNetCompatibilityRequirements(RequirementsMode?
=?AspNetCompatibilityRequirementsMode.Allowed)]
????
public?class?WCFservice
????{
????????[OperationContract]
????????[WebInvoke(RequestFormat?
=?WebMessageFormat.Json,?ResponseFormat?=?WebMessageFormat.Json,?BodyStyle?=?WebMessageBodyStyle.WrappedRequest)]
????????
public?string?SayHello(string?name)
????????{
????????????
return?"hello:"+name;
????????}
????}

接著就是配置文件

Code
<system.serviceModel>
????
<behaviors>
??????
<endpointBehaviors>
????????
<behavior?name="AllenBehavior">
??????????
<enableWebScript?/>
????????
</behavior>
??????
</endpointBehaviors>
????
</behaviors>
????
<serviceHostingEnvironment?aspNetCompatibilityEnabled="true"?/>
????
<services>
??????
<service?name="jqueryWCF.WCFservice">
????????
<endpoint?address=""?behaviorConfiguration="AllenBehavior"?binding="webHttpBinding"?contract="jqueryWCF.WCFservice"?/>
??????
</service>
????
</services>
??
</system.serviceModel>

<behavior name="AllenBehavior"><enableWebScript /></behavior>
準備工作做好后就可以前臺調用了:

Code
<html?xmlns="http://www.w3.org/1999/xhtml"?>
<head?runat="server">
????
<title>wcf</title>
<script?language="javascript"?type="text/javascript"?src="jquery.js"></script>
<script?language="javascript"?type="text/javascript">
function?sayhello(){
????
var?name?=?$("#name").val();
????$.ajax({
????????type:?
'post',
????????url:?
'/WCFservice.svc/SayHello',
????????contentType:?
'text/json',
????????data:?
'{"name":"'+name+'"}',
????????success:?
function(msg)?{
????????
var?a?=?eval('('+msg+')');
????????
if(String(a.d).length>0){alert(a.d);}
????????
else{alert("服務器超時");}
????????}
????});
????}
</script>
<style?type="text/css">
#content
{height:?181px;width:?549px;}
#title
{width:?544px;}
????
</style>
</head>
<body>
????
<form?id="form1"?runat="server">
????
<div>
????????name:
<input?type="text"?id="name"?/>
????????
<br?/>
????
<input?type="button"??value="hello"?onclick="sayhello();"?/>
????
</div>
????
</form>
</body>
</html>

這里的一些注意事項大家可以但看dudu的文章(下面有鏈接)。這樣,我們就可以利用jQuery調用wcf了。


小結:以上就是調用WCF的一些方法,希望對大家學習WCF有幫助。也希望大家分享其他調WCF的方法。

參考學習資料:

Robin:http://www.cnblogs.com/jillzhang/archive/2008/07/26/1252171.html
dudu:http://www.cnblogs.com/dudu/archive/2009/07/14/1523082.html
liulun:http://www.cnblogs.com/liulun/articles/1425382.html

轉載于:https://www.cnblogs.com/love828/archive/2012/07/26/2610329.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/274708.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/274708.shtml
英文地址,請注明出處:http://en.pswp.cn/news/274708.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[科普文] Vue3 到底更新了什么?

Vue3 已經發布一段時間了&#xff0c;這個版本從底層實現到上層 API 設計都發生了非常大的變化&#xff0c;但具體改變了些什么呢&#xff1f;一起簡單盤點下&#xff1a;一、Composition API使用傳統的option配置方法寫組件的時候問題&#xff0c;隨著業務復雜度越來越高&…

ipados_如何設計具有最新iPadOS 14功能的出色iPad應用

ipadosWe all know that iPad Pro already has a seriously powerful computing power and that it’s possible to create meaningful stuff with Apple Pen.我們都知道iPad Pro已經具有強大的計算能力&#xff0c;并且可以使用Apple Pen創建有意義的東西。 But do we really…

分組顯示的ListView分頁加載數據

參考&#xff1a; http://www.cnblogs.com/qianxudetianxia/archive/2011/06/07/2074326.html 分組的ListView的拖拽 http://www.cnblogs.com/qianxudetianxia/archive/2011/06/13/2079253.html ListView分頁加載數據 http://blog.csdn.net/cjjky/article/details/6898871轉載于…

67行JS代碼實現隊列取代數組,面試官刮目相看

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以 點此加我微信ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

ux和ui_我怎么知道UI / UX是否適合我?

ux和ui重點 (Top highlight)I’m super excited to be writing this as it’s the first official issue of Visual Q’s! If you don’t already know, this will be a monthly advice column for designers. If you join the newsletter, you’ll receive this before it goe…

HTML4和HTML5的區別[轉]

HTML5是最新的HTML標準&#xff0c;或遲或早&#xff0c;所有的web程序員都會發現需要使用到這個最新的標準&#xff0c;而且&#xff0c;很多人都會感覺到&#xff0c;重新開發一個HTML5的網站&#xff0c;要比把一個網站從HTML4遷移到HTML5上容易的多&#xff0c;這是因為這兩…

vs2017字體最佳選擇_如何為下一個項目選擇最佳字體? 一個簡單的游戲

vs2017字體最佳選擇“If I have the right font, half my design battle is already won!”“如果我使用正確的字體&#xff0c;那么我的設計大戰已經贏了一半&#xff01;” In my first UX Design job, my AVP( Satish if you’re reading this, this one’s for you. ) onc…

淺談初中級前端學習方法~

大家好&#xff0c;我是若川。 常有小伙伴問我如何學習前端開發。今天就簡單談下學習方法&#xff0c;方法可能主要適用于初中級前端。回想我們高中學習&#xff0c;是不是都是"以課本為主&#xff0c;其他資料為輔"。而且課堂上記筆記&#xff0c;然后通過大量練習&…

HDU-水餃基情 二維樹狀數組

該題就是簡單的二維樹狀數組&#xff0c;保留一份棋盤的最新狀態即可&#xff0c;樹狀數組里面就只保留在原有基礎上增加或者減少的某一種餃子的數量。 代碼如下&#xff1a; #include <cstring> #include <cstdlib> #include <cstdio> using namespace std;…

ui設計中的版式設計_設計中的版式-第3部分

ui設計中的版式設計and how not to suck at it以及如何不吸吮它 This is the 3rd and last part of the series. Here we take all our learnings from Part 1(Click to read) & Part 2(Click to read) and put to good use. Lets begin!這是本系列的第三部分也是最后一部…

聽說你還在用開發者工具手動上傳小程序,快來試試 miniprogram-ci 提效摸魚

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以 點此加我微信ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

ucla ai_UCLA的可持續性:用戶體驗案例研究

ucla aiRole: UX Researcher / UX Designer / Critical-thinker角色&#xff1a; UX研究人員/ UX設計人員/批判性思維者 Scope: 4 weeks, March — March 2020范圍&#xff1a; 4周&#xff0c;2020年3月至2020年3月 What I Did: UX Research, Speculative Design, Product D…

推薦10個國外圖片素材網站

下面&#xff0c;為大家帶來的 10 個國外精選的墻紙網站。 NO.1 Social Wallpapering 給我帶來全新的體驗&#xff0c; Web2.0 一個熱門話題。可以讓我自由的評選自己喜歡的東西&#xff0c;投票、評論、沉淪等等&#xff0c;對于網站內喜歡的東西可以做出自己喜歡的方式。進入…

大三的小白同學是如何拿到字節offer的,經驗分享

這是來自大三邵小白同學的投稿。原文鏈接&#xff1a;https://juejin.cn/post/7092806181856657445很多時候我們容易羨慕別人成功了&#xff0c;卻往往沒有看到別人背后的努力。1前言大家好&#xff0c;我是邵小白&#xff0c;一個長沙某不知名雙非的大三學生。今年三月份來到杭…

UNIBO大學博物館網絡設計—品牌重塑和數字產品設計

Brief / Redesign the Visual Identity of the University of Bologna Museum Network (SMA) and apply the new designs to a Digital Product簡介/重新設計博洛尼亞大學博物館網絡(SMA)的視覺識別&#xff0c;并將新設計應用于數字產品 Period / Mar 2020 — June 2020期間/…

oracle中的sga和pga

oracle中的sga包含了幾個主要的部分 1.shared pool 共享池 2.database buffer cache 數據庫高速緩沖區 3.redo log buffers 重做日志緩沖區 4.large pool 大池 5.java pool java池 a.shared pool: oracle shared pool包括library cache(庫緩存)和dictionary cache(數據字典高速…

進來做幾道 JavaScript 基礎題找找自信?

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以 點此加我微信ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

人物肖像速寫_驕傲家庭:肖像項目

人物肖像速寫2020 has been a solemn, transformative year. Pride month takes place in the context of a groundswell up-rising against racism and police brutality and in the continued isolation of COVID-19.2020年是莊嚴&#xff0c;變革的一年。 驕傲月的發生是在反…

答讀者問:錢和成長,哪個更重要?

大家好&#xff0c;我是若川。持續組織了8個月源碼共讀活動&#xff0c;感興趣的可以 點此加我微信ruochuan12 參與&#xff0c;每周大家一起學習200行左右的源碼&#xff0c;共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》 包含20余篇源碼文章。歷史面試系列。另外…

ui設計顏色的使用_UI設計中顏色使用的10條原則

ui設計顏色的使用重點 (Top highlight)1.顏色術語 (1. Color Terminology) Color terminology forms our foundation of color knowledge. Think of color terms like hue, tint, and shade as tools that we can employ to develop unique color palettes.顏色術語構成了我們顏…