Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…
北欧好きが、愛用の北欧モノを見せ合うコミュニティ
Javascript関連情報
更新日:2009年05月15日
今回は、jQueryのAjax メソッドajax( options )について引数のオプションリストの中からifModified と jsonp です。
【ifModified:false】 success msg: こんにちは status: success complete XHR: XHR.responseText: こんにちは XHR.status: 200 status: -------------------------------------------------------------------------------- success msg: こんにちは status: success complete XHR: XHR.responseText: こんにちは XHR.status: 200 status: -------------------------------------------------------------------------------- 【ifModified:true】 success msg: こんにちは status: success complete XHR: XHR.responseText: こんにちは XHR.status: 200 status: -------------------------------------------------------------------------------- error XHR: status: notmodified errorThrown: undefined complete XHR: XHR.responseText: XHR.status: 304 status:それぞれ2回以上繰り返し押してみると、【ifModified:false】の方は何度押しても成功し、success、completeイベントがともに動作していることがわかります。
<div>それぞれ2回以上繰り返し押してみてください。
<p>
<button id="a" class="jsbuttons">
【ifModified:false】</button>
<button id="b" class="jsbuttons">
【ifModified:true】</button>
</p>
<p id="su1"><b>【ifModified:false】</b></p>
<p id="su2"><b>【ifModified:true】</b></p>
</div>
<script type="text/javascript">
jQuery(function($){
//【ifModified:false】
$("#a")
.click(function () {
$.ajax( mkOption("#su1",false) );
});
//【ifModified:true】
$("#b")
.click(function () {
$.ajax( mkOption("#su2",true) );
});
//$.ajaxメソッドの引数へ渡すオプションを返します
function mkOption(selector,ifmod){
return {
ifModified:ifmod,
url: "./msg.txt",
error:function(XHR, status, errorThrown){
$(selector)
.append("<br><b>error</b>")
.append("<br> XHR: "+XHR)
.append("<br> status: "+status)
.append("<br> errorThrown: "+errorThrown)
},
success: function(msg,status){
$(selector)
.append("<br><b>success</b>")
.append("<br> msg: "+msg)
.append("<br> status: "+status)
},
complete: function (XHR, textStatus) {
$(selector)
.append("<br><b>complete</b>")
.append("<br> XHR: "+XHR)
.append("<br> XHR.responseText: "+XHR.responseText)
.append("<br> XHR.status: "+XHR.status)
.append("<br> status: "+status)
.append("<hr>");
}
}
}
//タイトルに色付け
$("#su1>b").css({"color":"red"})
$("#su2>b").css({"color":"red"})
});
</script>
サーバー側./msg.txt
こんにちはこの、同一ファイル(時刻)のチェックは、jQueryの内部では、送信時にifModifiedがtrueなら、初回はIf-Modified-Sinceヘッダの値として、setRequestHeaderメソッドで、"Thu, 01 Jan 1970 00:00:00 GMT"を与えています。
// Set the If-Modified-Since header, if ifModified mode.
if ( s.ifModified )
xhr.setRequestHeader("If-Modified-Since",
jQuery.lastModified[s.url] || "Thu, 01 Jan 1970 00:00:00 GMT" );
人気Javascriptランキング
Powered by 価格.com
北欧好きが、愛用の北欧モノを見せ合うコミュニティ