JQuery の extend メソッド extend は、プラグインを作成するときによく使用されるメソッドです。このメソッドにはオーバーロードされたプロトタイプがいくつかあります。
1. Jqueryの拡張メソッドのプロトタイプは、
extend(dest,src1,src2,src3...);
src1, src2, src3...をdestにマージすることを意味し、戻り値はこのメソッドはマージ後に dest の構造を変更することがわかります。マージされた結果を取得したいが、dest の構造を変更したくない場合は、次のように使用できます:varnewSrc=$.extend({},src1,src2,src3.. .)// つまり、dest パラメータとして「{}」を使用します。
このようにして、src1、src2、src3...をマージすることができ、マージ結果がnewSrcに返されます。たとえば、varresult=$ .extend({}、{name: "tom"、age:21}、{name: " ジェリー",性別:"男の子"})
そして、結合された結果結果={名前: 「ジェリー」 ",age:21,sex:"Boy"}
つまり、次のパラメータが前のパラメータと同じ名前を持つ場合、次のようになります。パラメータは以前のパラメータ値を上書きします。 $.extend(settings, options);//設定とオプションをマージし、マージした結果を設定に返します。これは、オプションが設定を継承し、継承した結果を設定に保存するのと同じです。
var settings = $.extend({},defaults,options);
//デフォルトとオプションをマージし、デフォルトの内容を上書きせずにマージした結果を設定に戻します。
2. dest パラメータを省略します 上記の extend メソッドのプロトタイプの dest パラメータは省略できます。省略した場合、メソッドは src パラメータを 1 つだけ持つことができ、src は extend の呼び出しにマージされます。メソッド。オブジェクト (例:
1, $.extend(src)
) このメソッドは、src を jquery のグローバル オブジェクト (例:
$.extend({hello:function(){ alert(
'hello');}});
2. $.fn.extend(src)
このメソッドは、次のように src を jquery インスタンス オブジェクトにマージします。 'hello
'
);}});は、helloメソッドをjqueryインスタンスオブジェクトにマージすることです。 以下は、一般的に使用される拡張の例です:
$.extend({net:{}});
namespace
を拡張します。
$.extend($.net,{hello:function(){alert(
'
);}})これは、helloメソッドを拡張する前に拡張します。 Jquery のネット名前空間に移動します。 3. Jquery の extend メソッドにもオーバーロードされたプロトタイプがあります:
最初のパラメータ boolean はディープコピーを実行するかどうかを表し、残りはパラメータは前に紹介したものと同じです。例を見てみましょう: varresult=$.extend(true, {}, サブオブジェクトの場所: {city: "Boston"} が src1 にネストされており、サブオブジェクトの場所: {state: "MA"} も src2 にネストされていることがわかります。ディープコピーパラメーターが真で、マージされた結果は次のとおりです。 "ボストン"、州:"MA"、郡:"中国" ",county: 「アメリカ」 結果={名前:"ジョン"、最後:"Resig"、場所:{州: " マ ",郡:"中国"}} 以上$.extend() がプロジェクトでよく使用される詳細をいくつか示します。 投稿 @ 2010-11-24 21:13 xiaoxiaohui 読書 (48) コメント (0)
HTTPリクエストヘッダー情報 HTTP リクエスト ヘッダー (HttpServletRequest) の概要 HTTP クライアント プログラム (ブラウザなど) は、サーバーにリクエストを送信するときに、 リクエスト タイプ (通常は GET、POST、または HEAD) を指定する必要があります。 エラーコードの説明
{名前:"ジョン"、場所:{city:"ボストン "、郡:"USA"}
},
{ 最後: "Resig"、場所: {州:"MA"、郡:"中国" }
} );
}} つまり、src 内のネストされたサブオブジェクトもマージすると言われており、最初のパラメーター boolean が false の場合、次のようにマージの結果がどうなるかを見てみましょう: varresult= $.extend( false, {},{ name: "ジョン"
, location:{city:
}
},{ 最後: "Resig"、場所: {州:"MA"、郡:"中国"
}
});マージ後の結果は次のようになります:
$.extend({
min: function(a, b){return a < b?a:b; },
max: function(a, b){return a > b?a:b; }
}); // jquery 用に拡張された 2 つのメソッド min と max
拡張メソッドを使用します (「$.method name」で呼び出されます)。
alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));
必要に応じて、クライアント プログラムは他のリクエスト ヘッダーの送信を選択することもできます。 Content-Length を除き、ほとんどのリクエスト ヘッダーは必要ありません。 Content-Length は POST リクエスト に存在する必要があります。 以下は、最も一般的な HTTP リクエスト ヘッダー (HttpServletRequest) の概要です。
HTTP クライアント プログラム (ブラウザなど) は、サーバーにリクエストを送信するときにリクエスト タイプ (通常は GET または POST) を指定する必要があります。クライアント プログラムは、必要に応じて追加の要求ヘッダーの送信を選択することもできます。 Content-Length を除き、ほとんどのリクエスト ヘッダーは必要ありません。 Content-Length は POST リクエストに存在する必要があります。
以下は最も一般的なリクエストヘッダーの一部です
Accept: ブラウザーによって受け入れられる MIME タイプ。
Accept-Charset: ブラウザーが受け入れられる文字セット。
Accept-Encoding: gzip など、ブラウザがデコードできるデータ エンコード方式。サーブレットは、gzip でエンコードされた HTML ページを gzip をサポートするブラウザに返すことができます。多くの場合、これによりダウンロード時間が 5 ~ 10 分の 1 に短縮されます。
Accept-Language: ブラウザーが希望する言語タイプ。サーバーが複数の言語バージョンを提供できる場合に使用されます。
認可: 認可情報。通常、サーバーによって送信された WWW-Authenticate ヘッダーへの応答に表示されます。
接続: 永続的な接続が必要かどうかを示します。サーブレットがここの値を「Keep-Alive」と認識した場合、またはリクエストが HTTP 1.1 を使用していることを認識した場合 (HTTP 1.1 はデフォルトで永続的な接続を作成します)、ページに複数の要素 (アプレット、画像)、ダウンロードに必要な時間を大幅に短縮します。これを実現するには、サーブレットは応答で Content-Length ヘッダーを送信する必要があります。これを実現する最も簡単な方法は、最初にコンテンツを ByteArrayOutputStream に書き込み、その後、コンテンツを正式に書き出す前にそのサイズを計算することです。
Content-Length: リクエストメッセージボディの長さを示します。
Cookie: これは最も重要なリクエストヘッダー情報の 1 つです
From: リクエスト送信者の電子メール アドレス。一部の特別な Web クライアント プログラムで使用され、ブラウザーでは使用されません。
ホスト:初期URLのホストとポート。
If-Modified-Since: 指定された日付以降に変更された場合にのみ、要求されたコンテンツを返します。それ以外の場合は、304 "Not Modified" 応答を返します。
プラグマ: "no-cache" 値を指定すると、サーバーは、たとえそれがプロキシ サーバーであり、既にページのローカル コピーを持っていたとしても、更新されたドキュメントを返さなければならないことを意味します。
リファラー: ユーザーが現在リクエストしているページにアクセスするための URL が含まれます。
User-Agent: ブラウザの種類。サーブレットによって返されるコンテンツがブラウザの種類に関連する場合、この値は非常に便利です。
UA-Pixels、UA-Color、UA-OS、UA-CPU: IE ブラウザ の一部のバージョンによって送信される非標準リクエスト ヘッダーで、画面サイズ、色深度、オペレーティング システム、CPU タイプを示します。
HTTP 応答ヘッダー (HttpServletResponse) の概要
Web サーバーの HTTP 応答は、通常、ステータス行、1 つ以上の応答ヘッダー、空白行、コンテンツ ドキュメントの項目で構成されます。 HTTP 応答ヘッダーの設定は、多くの場合、ステータス行のステータス コードの設定と組み合わされます。たとえば、「ドキュメントの場所が変更されました」を示すいくつかのステータス コードには Location ヘッダーが付いていますが、401 (Unauthorized) ステータス コードには WWW-Authenticate ヘッダーが付いている必要があります。
ただし、特別な意味を持つステータスコードが設定されていない場合でも、レスポンスヘッダーを指定すると便利です。応答ヘッダーは、Cookie の設定、変更日の指定、指定された間隔でページを更新するようにブラウザに指示、永続的な HTTP 接続を利用するためのドキュメントの長さの宣言など、その他多くのタスクに使用できます。
応答ヘッダーを設定するために最も一般的に使用されるメソッドは、HttpServletResponse の setHeader です。このメソッドには 2 つのパラメーターがあり、それぞれ応答ヘッダーの名前と値を表します。ステータス コードの設定と同様に、応答ヘッダーの設定は、ドキュメントのコンテンツを送信する前に行う必要があります。
setDateHeader メソッドと setIntHeadr メソッドは、特に日付と整数値を含む応答ヘッダーを設定するために使用されます。前者は Java 時刻を GMT 時刻文字列に変換する手間を回避し、後者は整数を文字列に変換する手間を回避します。
HttpServletResponse にも多くの設定が用意されています
setContentType: Content-Type ヘッダーを設定します。ほとんどのサーブレットはこの方法を使用します。
setContentLength:Content-Lengthヘッダーを設定します。この関数は、永続的な HTTP 接続をサポートするブラウザに役立ちます。
addCookie: Cookie を設定します (応答には複数の Set-Cookie ヘッダーが含まれることが多いため、サーブレット API には setCookie メソッドはありません)。
さらに、前のセクションで紹介したように、sendRedirect メソッドはステータス コード 302 を設定するときに Location ヘッダーも設定します。
HTTPレスポンスヘッダーの説明
サーバーでサポートされているリクエスト メソッド (GET、POST など) を許可します。
Content-Encoding ドキュメントのエンコード(Encode)メソッド。 Content-Type ヘッダーで指定されたコンテンツ タイプは、デコード後にのみ取得できます。 gzip を使用してドキュメントを圧縮すると、HTML ドキュメントのダウンロード時間を大幅に短縮できます。 Java の GZIPOutputStream は gzip 圧縮を簡単に実行できますが、これをサポートしているのは Unix 上の Netscape と Windows 上の IE 4 および IE 5 だけです。したがって、サーブレットは、Accept-Encoding ヘッダー (つまり request.getHeader("Accept-Encoding")) を見てブラウザが gzip をサポートしているかどうかを確認し、gzip をサポートしているブラウザに対しては gzip 圧縮された HTML ページを返し、通常の HTML ページを返す必要があります。他のブラウザのページ。
Content-Lengthはコンテンツの長さを表します。このデータは、ブラウザが永続的な HTTP 接続を使用する場合にのみ必要です。永続的な接続を利用したい場合は、出力ドキュメントを ByteArrayOutputStream に書き込み、完了時にそのサイズを確認し、その値を Content-Length ヘッダーに入れて、最後に byteArrayStream.writeTo(response.getOutputStream(() ). Content-Type は、次のドキュメントが属する MIME タイプを示します。サーブレットのデフォルトは text/plain ですが、通常は Content-Type として明示的に指定する必要があるため、HttpServletResponse には専用のメソッド setContentTyep が用意されています。 setDateHeader を使用してこのヘッダーを設定すると、時刻形式の変換の問題を回避できます。 Expires ドキュメントが期限切れと見なされ、キャッシュされなくなるのはいつですか? Last-Modified ドキュメントの最終変更時刻は、If を通じて指定できます。 -Modified-Since リクエスト ヘッダー。リクエストは条件付き GET として扱われ、指定された時間以降に変更されたドキュメントのみが返されます。それ以外の場合は、setDateHeader を使用して設定できます。 Location は、クライアントがドキュメントを取得するために移動する場所を示します。通常、Location は直接設定されませんが、HttpServletResponse の sendRedirect メソッドによってステータス コードも 302 に設定されます。Refresh は、ブラウザの更新にかかる時間を示します。現在のドキュメントを更新するだけでなく、setHeader("Refresh", "5; URL=http://host/path") を介してブラウザに指定したページを読み取るように要求することもできます。この機能は通常、HTML ページの HEAD 領域に を設定することで実現されます。 CGI やサーブレットを使用できない HTML ライターにとっては、リフレッシュまたはリダイレクトが必要です。ただし、サーブレットの場合は、Refresh ヘッダーを直接設定する方が便利です。Refresh の意味は、「このページを更新する、またはページにアクセスする」であることに注意してください。 「2 回おき」ではなく、「N 秒後に指定されたページ」を表示します。このページを更新するか、指定されたページにアクセスするには、N 秒かかります。したがって、継続的に更新するには、毎回 Refresh ヘッダーを送信する必要があり、204 ステータス コードを送信すると、ブラウザーが続行できなくなる可能性があります。リフレッシュするには、Refresh ヘッダーまたは 。 Refresh ヘッダーは公式の HTTP 1.1 仕様の一部ではなく拡張機能ですが、Netscape と IE の両方がサポートしていることに注意してください。
サーバーサーバー名。通常、サーブレットはこの値を設定しませんが、Web サーバー自体によって設定されます。
Set-Cookieは、ページに関連付けられたCookieを設定します。サーブレットは、response.setHeader("Set-Cookie", ...) を使用せず、HttpServletResponse によって提供される専用メソッド addCookie を使用する必要があります。以下の Cookie 設定の説明を参照してください。
WWW-Authenticate クライアントは Authorization ヘッダーにどのような種類の認可情報を提供する必要がありますか?このヘッダーは、401 (Unauthorized) ステータス行を含む応答で必要です。たとえば、response.setHeader("WWW-Authenticate", "BASIC realm="executives"") のようになります。通常、サーブレットはこの側面を処理せず、Web サーバーの特殊なメカニズムによってパスワードで保護されたページ (.htaccess など) へのアクセスを制御できることに注意してください。
「100」:続行
「101」:プロトコル変更
「200」:OK
「201」:作成
「202」:承認済み
「203」:非権限情報
「204」:いいえコンテンツ
「205」:コンテンツをリセット
「206」:部分的なコンテンツ
「300」:複数の選択肢
「301」:永久に移動
「302」:見つかった
「303」:他を参照
「304」:未変更
「305」: プロキシを使用する
「307」: 一時的なリダイレクト
HTTP 400 - 無効なリクエスト
HTTP 401.1 - 未承認: ログイン失敗
HTTP 401.2 - 未承認: サーバー構成の問題によるログイン失敗
HTTP 401.3 - ACL によりリソースへのアクセスが禁止されています
HTTP 401.4 - 未承認: フィルターによって承認が拒否されました
HTTP 401.5 - 未承認: ISAPI または CGI の承認が失敗しました
HTTP 403 - アクセスが禁止されました
HTTP 403 - インターネット サービス マネージャー (HTML) へのアクセスはローカルホストに限定されます アクセス: 実行可能ファイルへのアクセスはありません
HTTP 403.2 -アクセスなし: 読み取りアクセスなし
HTTP 403.3 - アクセスなし: 書き込みアクセス
HTTP 403.4 - アクセスなし: SSL が必要
HTTP 403.5 - アクセスなし: SSL が必要 128
HTTP 403.6 - アクセスなし: IP アドレスが拒否されました
HTTP 403.7 - 禁止:クライアント証明書が必要です
HTTP 403.8 - 禁止: サイトへのアクセスが禁止されています
HTTP 403.9 - 禁止: 接続されているユーザーが多すぎます
HTTP 403.10 - 禁止: 無効な構成
HTTP 403.11 - 禁止: パスワードが変更されました
HTTP 403.12 - 禁止: マッパーによってアクセスが拒否されました
HTTP 403.13 - 禁止: クライアント証明書が取り消されています
HTTP 403.15 - 禁止: クライアントのアクセス権限が多すぎます
HTTP 403.16 - 禁止: クライアント証明書が信頼できないか無効です
HTTP 403.17 - 禁止: クライアント証明書の有効期限が切れているか、まだ有効ではありませんhttp 404.1-ウェブサイトが見つかりません
HTTP404-ファイルが見つからない
HTTP405-リソース禁止
HTTP 406-容認できない
HTTP 407-必要な認証
HTTP410- - リクエスト - URI が長すぎます
HTTP 500 - 内部サーバー エラー - ASP エラー
HTTP 500.100 - 内部サーバー エラー - ASP エラー
HTTP 500-11 サーバーダウン
HTTP 500-12 アプリケーションが再起動されました
HTTP 500-13 - サーバーがビジー状態です
HTTP 500-14 - アプリケーションが無効です
HTTP 500-15 - global.asa のリクエストは許可されていません
エラー 501 - 未実装
HTTP 502 - ゲートウェイエラー
以上がJQuery での extend 使用法の詳細な紹介と使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。