私はグーグルマップローダーに取り組んでいます(グーグルマップjavascriptAPIを使用)。ポイントが利用可能になったときに、パスに動的にポイントを追加したいと思います。 編集:WebページとJavaScriptは、Webサーバーを介さずに、ローカルに保存およびロードされます。
この目的のために、使用したいデータを入れる外部javascriptファイルを作成しました。
私はstackoverflowの他の場所で見つけた素晴らしいトリックを使用してJavaスクリプトオブジェクトをロードします:
function loadjsfile( filename, callback )
{
var fileref = document.createElement( 'script' );
fileref.setAttribute( "type", "text/javascript" );
fileref.setAttribute( "src", filename );
var done = false;
fileref.onload = fileref.onreadystatechange = function()
{
if( !done && ( !this.readyState
|| this.readyState == "loaded"
|| this.readyState == "complete") )
{
done = true;
// Continue your code
callback();
// Handle memory leak in IE
fileref.onload = fileref.onreadystatechange = null;
document.getElementsByTagName( "script" )[0].removeChild( fileref );
}
};
document.getElementsByTagName( "script" )[0].appendChild( fileref );
}
これは、初期化を続行する前に外部JavaScriptが実際にロードされるまで待機するため、完全に機能します。
だから、それはすべて素晴らしいです。次に、外部javascriptファイルをリロードする5秒のタイムアウトを設定します。これは私が問題を抱えているところです。Google Chromeは、ディスクに直接移動するのではなく、キャッシュから外部JavaScriptファイルを再読み込みしています。これは、マップパスが進むにつれて更新されないことを意味するため、非常に苦痛です。私は本当にそれが必要です。
ページ全体を更新すると、JavaScriptが再ロードされても問題ありませんでしたが、ちらつきは非常に煩わしいものでした(そして、マップを「初期」状態に強制的に戻しました)。この新しいメソッドは、毎回javascriptファイルを強制的に再ロードできれば完全に機能します。
だから誰かが私を助けることができますか?
私はJavascript(私は主にC ++コーダーです)に非常に慣れていないので、愚かなことを尋ねている場合はお詫びします:D