首頁 >web前端 >js教程 >JQuery中extend用法的詳細介紹與使用

JQuery中extend用法的詳細介紹與使用

巴扎黑
巴扎黑原創
2017-07-09 16:45:171866瀏覽



JQuery的extend擴充方法:
Jquery的擴充方法extend是我們在寫入外掛的過程中常用的方法,該方法有一些重載原型,在此,我們一起去了解了解。
 一、Jquery的擴展方法原型是:   

extend(dest,src1,src2,src3...);

#它的意義是將src1,src2,src3...合併到dest中,返回值為合併後的dest,由此可以看出該方法合併後,是修改了dest的結構的。如果想要得到合併的結果卻又不想修改dest的結構,可以如下使用:

varnewSrc=##$.extend({},src1 ,src2,src3...)//也就是將"{}"當作dest參數。

這樣就可以將src1,src2,src3...進行合併,然後將合併結果回傳給newSrc了。如下例:

varresult=$.extend({},{name:"##Tom ",age:21},{name:#"Jerry",sex:"Boy"})那麼合併後的結果

result

={name:"Jerry ",age:21,sex:"Boy" }也就是說後面的參數如果和前面的參數存在相同的名稱,那麼後面的會覆寫前面的參數值。

$.extend(settings, options);  

//合併settings和options,並將合併結果傳回settings中,相當於options繼承setting並將繼承結果儲存在setting中。

var settings = $.extend({}, defaults, options);
//合併defaults和options,並將合併結果傳回setting而不覆蓋default內容。


二、省略dest參數

上述的extend方法原型中的dest參數是可以省略的,如果省略了,則該方法就只能有一個src參數,而且是將該src合併到呼叫extend方法的物件中去,如:
1、$.extend(src)
該方法就是將src合併到jquery的全域對象中去,如:

$.extend({

hello:function(){alert(
'
#hello# ');}});
就是將hello方法合併到jquery的全域物件中。

2、$.fn.extend(src)
該方法將src合併到jquery的實例物件中去,如:

$.fn.extend({

hello:function(){alert(
'
hello##');} });

就是將hello方法合併到jquery的實例物件中。

下面例舉幾個常用的擴充實例:

$.extend({net:{}});


這是在jquery全域物件中擴充一個net
命名空間

$.extend($.net,{

hello:function(){alert(

'
hello' );}})
這是將hello方法擴展到先前擴充的Jquery的net命名空間中去。

三、Jquery的extend方法還有一個重載原型:

  

extend(boolean,dest,src1,src2,src3...)

 第一個參數boolean代表是否進行深度拷貝,其餘參數和前面介紹的一致,什麼叫深層拷貝,我們看一個例子:

varresult=$.extend(true, {},
{ name:
"John", location: {city:##"##Boston ",county:"USA"} },{ last:
"
Resig", location: {state:"MA",county:"China"} } ); 我們可以看出src1中嵌套子物件location:{city:"Boston"},src2中也嵌套子物件location:{state:"MA"},第一個深度拷貝參數為true,那麼合併後的結果就是: 

result

={name:"John",last:"Resig",location:{city:
"
Boston",state:##" MA",county:"#China"}}
也就是說它會將src中的巢狀子物件也進行合併,而如果第一個參數boolean為false,我們看看合併的結果是什麼,如下:

varresult

=$.extend(false, {},{ name: "
John", location:{city:"##Boston" ,county:"USA"} },{ last: "
Resig
", location: {state:"MA",county:"China"} });那麼合併後的結果就是:

result={name:"##John" ,last:"Resig"#,location:{state:##"##MA ",county:"China"##}}








##########################################################################110 ####$.extend({###   min: function(a, b){return a < b?a:b; },###   max: function(a, b){return a > b ?a:b; } ###});   //為jquery擴展了min,max兩個方法###使用擴展的方法(透過「$.方法名稱」呼叫):###alert("a= 10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));############### ###以上就是$.extend()在專案中常會使用到的一些細節。 ######posted @ 2010-11-24 21:13 xiaoxiaohui 閱讀​​(48) 評論(0) 編輯######HTTP請求標頭資訊###

HTTP請求頭概述 (HttpServletRequest) HTTP客戶程式(例如瀏覽器),向伺服器發送請求的時候必須指明請求類型(一般是GET或POST或HEAD)。
  如有必要,客戶程式也可以選擇發送其他的請求頭。大多數請求頭並不是必需的,但Content-Length除外。對於POST請求來說Content-Length必須出現。 以下是一些最常見的請HTTP請求頭概述 (HttpServletRequest)
  HTTP客戶程式(例如瀏覽器),向伺服器發送請求的時候必須指明請求類型(一般是GET或 POST)。如有必要,客戶程式也可以選擇發送其他的請求頭。大多數請求頭並不是必需的,但Content-Length除外。對於POST請求來說 Content-Length必須出現。
  以下是一些最常見的請求頭
  Accept:瀏覽器可接受的MIME類型。
  Accept-Charset:瀏覽器可接受的字元集。
  Accept-Encoding:瀏覽器能夠進行解碼的資料編碼方式,例如gzip。 Servlet能夠向支援gzip的瀏覽器傳回經gzip編碼的HTML頁面。許多情況下這可以減少5到10倍的下載時間。
  Accept-Language:瀏覽器所希望的語言種類,當伺服器能夠提供一種以上的語言版本時要用到。
  Authorization:授權訊息,通常出現在對伺服器發送的WWW-Authenticate頭的應答中。
  Connection:表示是否需要持久連線。如果Servlet看到這裡的值為“Keep- Alive”,或看到請求使用的是HTTP 1.1(HTTP 1.1預設進行持久連接),它可以利用持久連接的優點,當頁麵包含多個元素時(例如Applet,圖片),顯著減少下載所需的時間。要實現這一點,Servlet需要在應答中發送一個Content-Length頭,最簡單的實作方法是:先把內容寫入 ByteArrayOutputStream,然後在正式寫出內容之前計算它的大小。
  Content-Length:表示請求訊息正文的長度。
  Cookie:這是最重要的請求頭資訊之一
  From:請求發送者的email位址,由一些特殊的Web客戶程式使用,瀏覽器不會用到它。
  Host:初始URL中的主機和連接埠。
  If-Modified-Since:只有當所要求的內容在指定的日期之後又經過修改才返回它,否則返回304「Not Modified」應答。
  Pragma:指定「no-cache」值表示伺服器必須傳回刷新後的文檔,即使它是代理伺服器而且已經有了頁面的本地拷貝。
  Referer:包含一個URL,使用者從該URL代表的頁面出發訪問目前請求的頁面。
  User-Agent:瀏覽器類型,如果Servlet傳回的內容與瀏覽器類型有關則該值非常有用。
  UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE瀏覽器所發送的非標準的請求頭,表示螢幕大小、顏色深度、操作系統和CPU類型。
  HTTP應答頭概述(HttpServletResponse)
  Web伺服器的HTTP應答頭概述(HttpServletResponse)
  Web伺服器的HTTP應答一般由以下幾項構成:一個狀態行,一個或多個應答頭,一個空行,內容文檔。設定HTTP應答頭往往和設定狀態行中的狀態代碼結合。例如,有好幾個表示「文件位置已經改變」的狀態代碼都伴隨著一個Location頭,而401(Unauthorized)狀態代碼則必須伴隨一個WWW-Authenticate頭。
  然而,即使在沒有設定特殊意義的狀態代碼時,指定應答頭也是很有用的。應答頭可以用來完成:設定Cookie,指定修改日期,指示瀏覽器按照指定的間隔刷新頁面,聲明文件的長度以便利用持久HTTP連接,…等等許多其他任務。
  設定應答頭最常用的方法是HttpServletResponse的setHeader,此方法有兩個參數,分別表示應答頭的名字和值。和設定狀態代碼相似,設定應答頭應該在發送任何文件內容之前進行。
  setDateHeader方法和setIntHeadr方法專門用來設定包含日期和整數值的應答頭,前者避免了把Java時間轉換為GMT時間字串的麻煩,後者則避免了把整數轉換為字串的麻煩。
  HttpServletResponse也提供了許多設定
  setContentType:設定Content-Type頭。大多數Servlet都要用到這個方法。
  setContentLength:設定Content-Length頭。對於支援持久HTTP連線的瀏覽器來說,這個函數是很有用的。
  addCookie:設定一個Cookie(Servlet API中沒有setCookie方法,因為回應往往包含多個Set-Cookie頭)。
  另外,如上節介紹,sendRedirect方法設定狀態代碼302時也會設定Location頭。
  HTTP應答頭 說明###  Allow 服务器支持哪些请求方法(如GET、POST等)。
  Content-Encoding 文档的编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Java的GZIPOutputStream可以很方便地进行gzip压缩,但只有Unix上的Netscape和Windows上的IE 4、IE 5才支持它。因此,Servlet应该通过查看Accept-Encoding头(即request.getHeader("Accept- Encoding"))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的HTML页面,为其他浏览器返回普通页面。
  Content-Length 表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。如果你想要利用持久连接的优势,可以把输出文档写入 ByteArrayOutputStram,完成后查看其大小,然后把该值放入Content-Length头,最后通过 byteArrayStream.writeTo(response.getOutputStream()发送内容。
  Content-Type 表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置 Content-Type,因此HttpServletResponse提供了一个专用的方法setContentTyep。
  Date 当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦。
  Expires 应该在什么时候认为文档已经过期,从而不再缓存它?
  Last-Modified 文档的最后改动时间。客户可以通过If-Modified-Since请求头提供一个日期,该请求将被视为一个条件GET,只有改动时间迟于指定时间的文档才会返回,否则返回一个304(Not Modified)状态。Last-Modified也可用setDateHeader方法来设置。
  Location 表示客户应当到哪里去提取文档。Location通常不是直接设置的,而是通过HttpServletResponse的sendRedirect方法,该方法同时设置状态代码为302。
  Refresh 表示浏览器应该在多少时间之后刷新文档,以秒计。除了刷新当前文档之外,你还可以通过setHeader("Refresh", "5; URL=http://host/path")让浏览器读取指定的页面。注意这种功能通常是通过设置HTML页面HEAD区的实现,这是因为,自动刷新或重定向对于那些不能使用CGI或Servlet的 HTML编写者十分重要。但是,对于Servlet来说,直接设置Refresh头更加方便。注意Refresh的意义是“N秒之后刷新本页面或访问指定页面”,而不是“每隔N秒刷新本页面或访问指定页面”。因此,连续刷新要求每次都发送一个Refresh头,而发送204状态代码则可以阻止浏览器继续刷新,不管是使用Refresh头还是。注意Refresh头不属于HTTP 1.1正式规范的一部分,而是一个扩展,但Netscape和IE都支持它。
  Server 服务器名字。Servlet一般不设置这个值,而是由Web服务器自己设置。
  Set-Cookie 设置和页面关联的Cookie。Servlet不应使用response.setHeader("Set-Cookie", ...),而是应使用HttpServletResponse提供的专用方法addCookie。参见下文有关Cookie设置的讨论。
  WWW-Authenticate 客户应该在Authorization头中提供什么类型的授权信息?在包含401(Unauthorized)状态行的应答中这个头是必需的。例如,response.setHeader("WWW-Authenticate", "BASIC realm=\"executives\"")。注意Servlet一般不进行这方面的处理,而是让Web服务器的专门机制来控制受密码保护页面的访问(例如.htaccess)。

錯誤代碼解釋
  "100" : Continue
  "101" : witching Protocols
  "200" : OK
  "201" : Created
2  OK
  "201" : Created
2 "203" : Non-Authoritative Information
  "204" : No Content
  "205" : Reset Content
  "206" : Partial Content## Part  30 : Moved Permanently
  "302" : Found
  "303" : See Other
  "304" : Not Modified
"30 "305" : Use Pron Pro#irxy#irxy#irxy#irxy#irxy#irl# HTTP 400 - 請求無效
  HTTP 401.1 - 未授權:登入失敗
  HTTP 401.2 - 未授權:伺服器設定問題導致登入失敗
  HTTP 401.3 - ACL 禁止存取資源##11  HTTP 401。授權被篩選器拒絕
  HTTP 401.5 - 未授權:ISAPI 或CGI 授權失敗
  HTTP 403 - 禁止存取
#  HTTP 403 - 對Internet 服務管理員(HTML) 的存取僅限於#HTTP 403.1 禁止存取:禁止可執行存取
  HTTP 403.2 - 禁止存取:禁止讀取存取
  HTTP 403.3 - 禁止存取:禁止寫入存取
  HTTPTP 403.4 - 禁止存取:禁止寫入存取
  HTHTTP 403.4 - 禁止存取:要求Sv1 禁止存取。存取:要求SSL 128
  HTTP 403.6 - 禁止存取:IP 位址被拒絕
  HTTP 403.7 - 禁止存取:要求客戶憑證
  HTTP 403.8 - 禁止存取:禁止存取:要求客戶憑證
  HTTP 403.8 - 禁止存取:禁止存取:禁止存取。 :連線的使用者過多
  HTTP 403.10 - 禁止存取:設定無效
  HTTP 403.11 - 禁止存取:密碼變更
  HTTP 403.12 - 禁止存取:映射器拒絕存取
  HTTP 403.12 - 禁止存取:映射器拒絕存取
  HTTP 403.12 - 禁止存取:映射器拒絕存取
 3 HTTP客戶憑證已被撤銷
  HTTP 403.15 - 禁止存取:客戶存取許可過多
  HTTP 403.16 - 禁止存取:客戶憑證不可信或無效
  HTTP 403.17 - 禁止存取客戶:客戶憑證不可信或無效
  HTTP 403.17 - 禁止存取生效
  HTTP 404.1 - 無法找到Web 網站
  HTTP 404 - 無法找到檔案
  HTTP 405 - 資源被禁止
  HTTP 406 - 無法接受代理驗證 - 無法接受代理驗證#104> HTTP 410 - 永遠無法使用
  HTTP 412 - 先決條件失敗
  HTTP 414 - 請求- URI長
  HTTP 500 - 內部伺服器錯誤
 長
  HTTP 500 - 內部伺服器錯誤
 - ASP HTTP 500。 HTTP 500-11 伺服器關閉
  HTTP 500-12 應用程式重新啟動
  HTTP 500-13 - 伺服器太忙
  HTTP 500-14 - 應用程式無效
#"
  HTTP 500-14 - 應用程式無效
#"
1 請求global.asa
  Error 501 - 未實作
  HTTP 502 - 閘道錯誤

以上是JQuery中extend用法的詳細介紹與使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn