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++かも日記 |