我正在开发一个谷歌地图加载器(使用谷歌地图 javascript API)。我想在路径可用时动态添加点。 编辑:网页和 javascript 在本地存储和加载,而不是通过网络服务器。
为此,我创建了一个外部 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 实际加载后再进行初始化。
所以这一切都很好,它加载得很好。然后我设置了一个 5 秒的超时来重新加载外部 javascript 文件。这是我有问题的地方。Google chrome 正在从缓存中重新加载外部 javascript 文件,而不是直接加载到磁盘。这是一个巨大的痛苦,因为这意味着我的地图路径不会随着它的进行而更新。我真的需要它。
当我刷新整个页面时,它重新加载了 javascript 但闪烁非常烦人(它迫使地图回到“初始”状态)。只要我可以强制它每次都重新加载 javascript 文件,这种新方法就可以完美运行。
那么任何人都可以帮助我吗?
我对 Javascript 很陌生(我主要是 C++ 编码器),所以如果我问一些愚蠢的问题,我很抱歉:D