`

javascript的加载与运行

阅读更多

一。因为每个<script>标签阻塞了页面的解析过程,直到它完整地下载并运行了外部javascript代码之后,页面处理才能继续进行。

二。浏览器在遇到<body>标签之前,不会渲染页面的任何部分。

 

减少javascript对性能的影响的方法:

一。将所有<script>标签放置在页面的底部,紧靠body 关闭标签</body>的上方。此法可以保证页面在脚本

运行之前完成解析。

百度的页面是个典型

 

二。将脚本成组打包。页面的<script>标签越少,页面的加载速度就越快,响应也更加迅速。不论外部脚本

文件还是内联代码都是如此。

三。使用非阻塞方式加载javascript:

1.为<script>标签添加defer 属性(只适用于Internet Explorer 和Firefox 3.5 以上版本)

2.动态创建<script>元素,用它下载并执行代码

function loadScript(url, callback){
var script = document.createElement ("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" || script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function(){
callback();
};
}
script.src = url;
document.getElementsByTagName_r("head")[0].appendChild(script);
}

 调用方法

loadScript("file1.js", function(){
alert("File is loaded!");
});
loadScript("file1.js", function(){
loadScript("file2.js", function(){
loadScript("file3.js", function(){
alert("All files are loaded!");
});
});
});

 

 

3.用XHR 对象下载代码,并注入到页面中

var xhr = new XMLHttpRequest();
xhr.open("get", "file1.js", true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
var script = document.createElement ("script");
script.type = "text/javascript";
script.text = xhr.responseText;
document.body.appendChild(script);
}
}
};
xhr.send(null);

 

  • 大小: 25.7 KB
分享到:
评论

相关推荐

    加载JavaScript脚本的包

    这就是`js jar jwr`标签所指的场景,它涉及到Java运行时环境中如何加载和执行JavaScript脚本。 1. **Nashorn JavaScript引擎**: 在Java 8之前,Java提供了Nashorn JavaScript引擎,这是一个内置的JavaScript解释...

    scriptjs异步JavaScript加载器和依赖管理器

    **script.js:异步JavaScript加载器与依赖管理器详解** 在Web开发中,JavaScript的异步加载和依赖管理是优化页面性能的关键因素。`script.js`是一个轻量级且功能强大的工具,它允许开发者实现异步加载JavaScript...

    javascript页面加载完执行事件代码

    5. 对于动态内容的加载,利用异步JavaScript与XML(Ajax)、Fetch API等技术,可以在不刷新整个页面的情况下,获取或更新页面中的部分内容。 总的来说,页面加载完毕执行事件代码是前端开发中的基础知识点,掌握好...

    ONNXjs实现使用JavaScript运行ONNX预训练深度学习模型

    6. **错误处理**:在JavaScript中处理异步操作时,记得使用`try...catch`来捕获可能的错误,特别是在模型加载和运行过程中。 7. **模型微调**:ONNX.js目前不支持模型训练,只适用于已预训练的模型的推理。如果你...

    QT中使用QScriptEngine引擎编译运行JavaScript脚本

    QScriptEngine不仅能让JavaScript运行,还可以让JavaScript与C++对象进行交互。QT提供了一些机制,如QScriptable、QScriptValue、QScriptContext等,使得C++对象可以被JavaScript调用。例如,创建一个C++对象并注册...

    javascript控件开发之动态加载

    3. **Ajax(异步JavaScript和XML)**:使用XMLHttpRequest对象或者更现代的fetch API,我们可以实现后台与服务器之间的数据通信,动态获取并加载所需内容。这种方式常用于动态加载页面的部分区域,如无限滚动或动态...

    基于Ajax的动态JavaScript文件加载模型.pdf

    浏览器端可以使用eval函数将返回的JavaScript文件插入到当前的JavaScript运行环境中。 本文还讨论了基于Ajax的动态JavaScript文件加载模型的优点和缺点。该模型可以减少网络流量,保护服务端的JavaScript代码,并...

    Javascript ajax加载Loading

    JavaScript AJAX(异步JavaScript和XML)技术是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的方法。在处理大量数据或执行耗时操作时,为了提供更好的用户体验,通常会使用“加载中”(Loading)...

    javascript经典特效---在网页中运行代码.rar

    JavaScript是一种广泛应用于网页开发的脚本语言,它可以让网页具有动态交互性,使得用户与网页内容之间能够进行实时的互动。本压缩包“javascript经典特效---在网页中运行代码.rar”聚焦于如何在网页中利用...

    javascript动态加载实现方法一.docx

    为了改善这种情况,我们可以采用动态加载的方式,比如使用 `$.getScript()` 函数(来自 jQuery),它可以在运行时按需加载 JavaScript 文件: ```javascript $.getScript("user.js", function() { $.getScript(...

    Javascript解释器在ECMAScript中运行Javascript代码

    当我们在浏览器中加载一个包含JavaScript的网页时,浏览器中的JavaScript引擎(如Chrome的V8引擎)会接收到源代码。这个引擎包含一个JavaScript解释器,它的主要任务是解析和执行这些代码。 1. **词法分析(Lexical...

    javascript异步加载

    这种方式允许在运行时按需加载JavaScript,从而减少页面初始化时的负担。例如: ```javascript async function loadScript() { const module = await import('your-module-url.js'); // 使用导入的模块 } load...

    RequireJS一个JavaScript文件和模块加载器

    此外,通过 `require` 函数,我们可以在运行时动态加载模块: ```javascript require(['dependency'], function(dependency) { // 使用dependency模块 }); ``` RequireJS 还允许我们进行配置,例如设置基础路径、...

    javascript实现动态加载CSS.docx

    JavaScript提供了一种方式,让我们能够在运行时根据需要异步加载CSS文件。以下将详细解释如何使用JavaScript实现动态加载CSS,并探讨其应用场景和优化策略。 首先,我们来看一个简单的JavaScript函数,用于动态添加...

    vc运行js脚本demo,可以加载类函数

    3. **加载和执行脚本**:有了执行环境后,可以加载JavaScript代码字符串或文件,然后通过引擎提供的API执行这段代码。 4. **交互和通信**:在JavaScript中调用C++函数,或者在C++中调用JavaScript函数,这通常通过...

    快应用标准框架实现,支持快应用的加载、运行、渲染,提供必要API的支持.zip

    快应用通常采用HTTP或HTTPS协议下载应用的HAP(快应用包)文件,然后通过内置的解析器进行解压,最后由框架负责加载运行环境和应用代码。 2. **运行机制**:快应用的运行基于JavaScript引擎,例如HapJS,它是专为快...

    SeaJS(Javascript 模块加载框架) v1.0.2

    6. **延迟加载与异步加载**:SeaJS 支持模块的延迟加载和异步加载,这意味着只有当模块实际被使用时,才会去加载,从而优化页面加载速度。 7. **版本管理和调试**:通过 `sea-debug.js` 文件,开发者可以在调试模式...

    [高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.文字版

    公司的高级前端工程师,他在书中分享了大量实战经验与技巧,帮助读者优化JavaScript性能,提升网页的加载速度和运行效率。 首先,书中讲述了JavaScript代码的加载与执行,这是性能优化的第一步。作者强调了脚本的...

    如何动态加载外部Javascript文件

    动态加载可以通过编程方式,在运行时将JavaScript文件的标签添加到HTML文档的或部分,从而实现按需加载。这对于提升用户体验、改善页面性能都有极大的帮助。 接下来,我们通过一个具体的例子来分析动态加载外部...

Global site tag (gtag.js) - Google Analytics