CGI-BBS > JAVA/JavaScript > JavaScript > JavaScriptについてCSVファイルを5秒おきに読み込みたい。


カレッヂ
カレッヂ


質問者 nao  投稿日 2004/10/26(火) 19:53:47
JavaScriptでCSVファイルを5秒おきに読み込むプログラムを書いています。
CSVファイルの内容はタイムスタンプのようなもので、別口でどんどん更新されていくつくり
になっています。
ローカルではうまくいくのですが、実際にWebサーバ上に置いて実行すると
32行目の
rs.MoveLast();
あたりでエラーになっているようです。

データの読み込み部分だけで、まだデータ表示するまではつくっていません。
何故ローカルで動いてWebサーバ上で動かないかがわかりません。
csvファイルのパスを"http://〜"のように絶対指定しても駄目でした。

どうやればうまくいくのか教えていただけないでしょうか。よろしくお願いします。


test.html
-----------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang=ja>
<head>
<title>Test</title>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">

<script type="text/javascript">
<!--

var updateInterval	= 5000;	//更新間隔(ミリ秒)
var updateTimerID	//更新タイマID
var date	= new Array();	//日付
var flg1	= new Array();	//緯度
var flg2	= new Array();	//経度
var historyNum	= 10;	//最大数

function initialize() {
	//データ更新タイマースタート
	updateTimerID = setInterval( "UpdatePosition(false)", updateInterval );
}

//データ更新///////////////////////////////////////////////////////////
function UpdatePosition() {
	//CSVの最新状態を取得
	LIST.dataURL = "cgi-bin/timelist.csv";
	LIST.Reset();
	var rs = LIST.recordset;

	//RecordSetから新しい順にデータを取得
	var i = 0;
	rs.MoveLast();
	while(!rs.EOF && !rs.BOF && i<historyNum) {
		date[i]	= rs.Fields("Date").value;	//日付
		flg1[i]	= rs.Fields("Flg1").value;	//フラグ1
		flg2[i]	= rs.Fields("Flg2").value;	//フラグ2
		rs.MovePrevious();
		i++;
	}	
}

// -->
</script>
</head>

<body onLoad="initialize();">
<OBJECT ID="LIST" WIDTH=0 HEIGHT=0 CLASSID="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
	<PARAM NAME="DataURL" VALUE="cgi-bin/timelist.csv">
	<PARAM NAME="UseHeader" VALUE="true">
</OBJECT>
</body>



timelist.html
-----------------------------------------------------------------------------
Date,Flg1,Flg2
2004/10/12 13:53:08,1,0
2004/10/12 14:01:19,0,0
2004/10/12 14:07:42,1,0
2004/10/12 14:14:43,0,0
2004/10/12 14:19:53,0,0
2004/10/12 14:20:06,0,0
2004/10/12 14:20:16,0,1
2004/10/12 14:20:37,0,0
2004/10/12 14:20:47,0,0
2004/10/12 14:23:46,0,0
2004/10/12 14:27:09,1,0
2004/10/12 16:06:29,0,1
2004/10/12 16:06:40,0,0
2004/10/12 16:06:50,0,0

プロバイダ参照:http://www.infoseek.co.jp
サーバのOS:不明
パソコンのOS:WinNT系
エディタ:DreamWaver4
FTPソフト:FFFTP
サーバ移転:していない
改造:していない 改造前不動
CGI習熟度:firsttime

回答者 dental  [削除]  投稿日 2004/10/27(水) 18:21:30
>別口でどんどん更新されていくつくり

とありますが、どんな方法なんでしょう。
例えば、CGI などでファイルを生成している場合、パーミッションは適切か確認してみては?
0700等ではブラウザから読めませんよね。

もう一つ、 cgi-bin の下は ScriptAlias が設定してあって cgi として
処理されていた場合データの読み込みが直接出来ないことも考えられます。
そこら辺の確認も。

質問者 nao  [削除]  投稿日 2004/10/28(木) 22:10:53
ありがとうございます。

>>別口でどんどん更新されていくつくり
>とありますが、どんな方法なんでしょう。
>例えば、CGI などでファイルを生成している場合、パーミッションは適切か確認してみては?
>0700等ではブラウザから読めませんよね。

CGIがtimelist.csvを生成しています。(1行ずつ追記していっています)
パーミッションを確認しましたが問題なさそうです。
とりあえず777とかにしても駄目でした。


>もう一つ、 cgi-bin の下は ScriptAlias が設定してあって cgi として
>処理されていた場合データの読み込みが直接出来ないことも考えられます。
>そこら辺の確認も。

ScriptAliasとは、サーバー側の設定だったでしょうか?
timelist.csvをcgi-binの外に置いても同様の結果でした。

引き続き解決法を調べます。

返信(回答)する

 


Web裏技