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

六帖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);

コメントを残す

メールアドレスが公開されることはありません。