<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312"/>
<meta name="keywords" content="SE_JsTree"/>
<title>使用选择城市对象</title>
<style type="text/css">v\:*{behavior:url(#default#VML);}</style>
<script src="ajax.js"></script>
<script src="place.js"></script>
<script language="javascript">
alert(window.SE_ajax)
alert(window.SE_place)
</script>
</head>
<body>
<div style="position:absolute;left:620px;">
</div>
</body>
</html>
<!--
问题描述, 一个 ajax.js 一个place.js
ajax.js 内容为:
function AAA(aa){
alert(["ajax",aa])
window.SE_ajax = function(){
alert("SE_ajax");
}
}
AAA();
place.js 内容为:
document.writeln('<script language="javascript" src="ajax.js" type="text/javascript" charset="gb2312"></script>');
function AAA(){
alert(["place"])
window.SE_place = function(){
alert("SE_place");
}
}
AAA(456);
会发现一个怪异的现象 place.js中调用的AAA() 竟然是ajax.js中的!!! 其他浏览器没有此问题
解决方法:
1, 页面中的<script src="ajax.js"></script>去掉
2, (function(){})() 采用这种方式
总结: js是单线程的, 情况发生的原因应该是place.js刚刚定义完AAA(),然后ajax.js加载进来了,把前面的AAA()覆盖了...
-->
safari的一个怪异问题 (应该和javascript加载顺序有关)
最新推荐文章于 2022-05-19 15:35:29 发布
本文探讨了一个关于JavaScript文件加载顺序的特殊案例,在不同浏览器中的表现差异。具体问题为:两个独立的JavaScript文件(ajax.js 和 place.js),由于加载顺序的问题导致函数被意外覆盖。文章详细解释了问题产生的原因,并提出了两种解决方案。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
Stable-Diffusion-3.5
图片生成
Stable-Diffusion
Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率
424

被折叠的 条评论
为什么被折叠?



