Range
例:oj.setRequestHeader("Range","bytes=500-999")
【説明】Ajaxなリクエストで、ファイル内の欲しい位置のデータだけを部分取得してみます。
【テスト内容】ボタンクリックで。Rangeの値を変えてリクエストします。左から順に、「0から199バイトまで」「500から999バイトまで」「先頭から1000バイト以上」「末尾から100バイト」です。
リクエストするファイルtest.txtの中身は、次の通り。
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111-222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222-333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444-555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555-666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666-777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777-888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb-ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc-ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd-eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff-
【結果】それぞれリクエストした部分のデータが戻ります。
【メモ】
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<title>header Test</title>
<!-- Ajax簡易ライブラリ jslb_ajax.js
リクエストヘッダ追記テスト中v039
-->
<script languege = "JavaScript"
src = "../../jslb_ajax039-b2.js"
charset = "utf-8"></script>
<!-- ヘッダテスト用 -->
<script language = "JavaScript">
<!--
function getRange(range)
{
//リクエスト
sendRequest({
onload : on_loaded , //データ受信用コールバック
onbeforsetheader : setHeaders //ヘッダセット用コールバック
}, '','GET','./test.txt',true,true)
//リクエストヘッダセット用コールバック関数(送信直前にセットされます)
function setHeaders(oj){
//Rangeの値をセットしてリクエスト
oj.setRequestHeader("Range","bytes="+range);
}
}
//データ受信用コールバック関数 ( 受信時に実行されます )
function on_loaded(oj)
{
//ステータスコード
status = "【ステータスコード】<br>"+oj.status
//レスポンスヘッダを取得
headers = "<br><br>【レスポンスヘッダ】<br>"+oj.getAllResponseHeaders().split('\n').join('<br>')
//レスポンスを取得
var res = "【サーバーから受信したtest.txtのデータ】<br>"+oj.responseText
//レスポンスされた文字列を表示
document.getElementById('outputdata').innerHTML=status+headers+res
}
//-->
</script>
<input type = "button"
value = "0-199"
onclick = "getRange('0-199')">
<input type = "button"
value = "500-999"
onclick = "getRange('500-999')">
<input type = "button"
value = "1000-"
onclick = "getRange('1000-')">
<input type = "button"
value = "-100"
onclick = "getRange('-100')">
<!-- ここへ出力 -->
<div id="outputdata"></div>
【サンプル】
【blog/Forums】
| JavaScript++かも日記 |