如何在javascript之前加载图像
我目前希望通过确保在javascript之前下载公司徽标来改善对web应用程序的感知 为此,我将javascript引用移动到公司徽标的如何在javascript之前加载图像,javascript,html,performance,perception,Javascript,Html,Performance,Perception,我目前希望通过确保在javascript之前下载公司徽标来改善对web应用程序的感知 为此,我将javascript引用移动到公司徽标的img元素下面 例如: <img src="/Images/Logo.jpg" alt="My Company"/> <script type="/Scripts/MyScripts.js"></script> 当查看Google Chrome开发者工具时,我可以看到对该徽标的调用已经发出,但是在页面上的所有javasc
img
元素下面
例如:
<img src="/Images/Logo.jpg" alt="My Company"/>
<script type="/Scripts/MyScripts.js"></script>
当查看Google Chrome开发者工具时,我可以看到对该徽标的调用已经发出,但是在页面上的所有javascript都被下载之前,它仍然处于“待定”状态
为什么会这样?如何确保在javascript之前加载公司徽标?尝试使用$(窗口)。如果使用jQuery,请为脚本加载
$( window).load(function() {
//put js code here
});
根据报告:
当完成页面时,窗口加载事件稍后执行
完全加载,包括所有帧、对象和图像。所以
应放置与图像或其他页面内容有关的函数
在窗口或内容标记本身的加载事件中
对于必须使用
添加到站点的单独文件,我建议使用$.getScript
$.getScript("path/to/file");
这是$。在HTML标记解析过程中,一旦出现JS文件,getScript
浏览器就必须下载并执行JS文件(至少由于可能使用文档。在脚本中写入)
最好的解决方案之一是添加onload
事件处理程序,在页面准备就绪时动态加载脚本:
<script type="text/javascript">
window.addEventListener("load",function () {
var elem = document.createElement("script");
element.src = "file.js";
document.body.appendChild(element);
, false);
</script>
addEventListener(“加载”,函数(){
var elem=document.createElement(“脚本”);
element.src=“file.js”;
document.body.appendChild(元素);
,假);
谢谢马克,你是否建议我将所有javascript引用移动到窗口加载触发器中的javascript调用中?@Curt,是的,用于页面脚本。如果你还希望从单独文件导入的其他javascript文件在加载后加载,那么我建议使用$.getScript
。我将其编辑到我的问题中。HTML标记过程中一旦出现图像,我的图像就会在脚本上方定义。为什么不先下载此图像?浏览器在构建整个DOM后会加载资源,但JS会阻止DOM构建。即使现代浏览器在标记中遇到图像时会立即请求图像(出于性能原因)当遇到脚本标记时,即执行脚本,然后才构建(和呈现)DOM,则会暂停DOM构建。