六帖のかたすみ

DVを受けていた男性。家を脱出して二周目の人生を生きています。自閉症スペクトラム(受動型)です。http://rokujo.org/ に引っ越しました。

パッケージファイル読み込み途中まで

六帖webアプリ
kickzone/TrainNavi2 · GitHub
路線図の読み込みまで対応した。あとは列車のデータを読み込めれば、一通り終了だ。これができたら、次は動作を軽くするための工夫を入れないといかん。路線図を作りこむと、直線が多くなるので当然ながら動作が重くなる。現在位置を調べる関数ものろくなる。
zipファイルの読み込みには、JSZip を使用した。モダンブラウザにのみ実装されているFileAPIと併用すると非常に楽だった。ただし、FileAPIはajaxを使用していると思われ、別スレッド処理になるので注意。以下使用例。

var onLoading = true;

function ReadZip(){
var packageFile = "package.zip";

//zipファイルをfilereaderで開く
var reader = new FileReader();
reader.onload = function(e) {
	var zip = new JSZip(e.target.result);
	//zipファイル内のfile1.txtをテキストファイルとして開く
	var textStatic = zip.file("file1.txt").asText();
	var aLines = textStatic.split("\n");
	for(var i=0; i<aLines.length; i++)
	{
		//読み込んだテキストを使った処理 省略
	}
	//ロード終了
	onLoading = false;
}
//ロード開始
onLoading = true;
reader.readAsArrayBuffer(packageFile);
}

ReadZip();

//ロード終了まで待つ
var wait = setInterval(function() {
    if (!onLoading) {
    	//ロード終了、インターバルを削除
    	clearInterval(wait);
    	//以下、zipファイルロード後の処理
   }
}, 100);