パッケージファイル読み込み途中まで
六帖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);