`

前端性能优化:使用异步加载,延迟加载依赖

阅读更多

日期:2013-7-1  来源:GBin1.com

前端性能优化:使用异步加载,延迟加载依赖

RequireJS已经迎来了异步加载和AMD格式的巨大浪潮。XMLHttpRequest(该对象可以调用AJAX)使得资源的异步加载变得流行起来,它允许无阻塞资源加载,并且使 onload 启动更快,允许页面内容加载,而不需要刷新页面。

我所用的异步加载器是John Hann的curl。curl加载器是基本的异步加载器,可以被配置,拥有很好的插件。以下是一小段curl的代码:

// 基本使用:  加载一部分AMD格式的模块
curl(['social', 'dom'], function(social, dom) {
    dom.setElementContent('.social-container', social.loadWidgets());
});

// 定义一个使用Google Analytics的模块,该模块是非AMD格式的
define(["js!//google-analytics.com/ga.js"], function() {
    // Return a simple custom Google Analytics controller
    return {
        trackPageView: function(href) {
            _gaq.push(["_trackPageview", url]);
        },
        trackEvent: function(eventName, href) {
            _gaq.push(["_trackEvent", "Interactions", eventName, "", href || window.location, true]);
        }
    };
});

// 加载一个不带回调方法的非AMD的js文件
curl(['js!//somesite.com/widgets.js']);

// 将JavaScript和CSS文件作为模块加载
curl(['js!libs/prism/prism.js', 'css!libs/prism/prism.css'], function() {
    Prism.highlightAll();
});

// 加载一个AJAX请求的URL
curl(['text!sidebar.php', 'storage', 'dom'], function(content, storage, dom) {
    storage.set('sidebar', content, 60);
    dom.setElementContent('.sidebar', content);
});

你可能早就了解,异步加载可以大大提高万展速度,但是我想在此说明的是,你要使用异步加载!使用了之后你可以看到区别,更重要的是,你的用户可以看到区别。

当 你可以根据页面内容延迟加载依赖的时候,你就可以体会到异步加载的好处了。例如,你可以只加载Twitter,Facebook和Google Plus到应用了名为social的CSS样式的div元素中。“在加载前检查是否需要”策略可以为我的用户节省好几KB的莫须有的加载。

下一篇中,我们会介绍使用Array.prototype.join代替字符串连接,以提高网页前端性能。

via Nelly@极客社区

来源:前端性能优化:使用异步加载,延迟加载依赖

分享到:
评论

相关推荐

    Angular 异步加载Controller

    在Angular开发中,异步加载Controller是一种常见的优化技术,它能显著提高应用的启动速度和性能,特别是对于大型单页应用程序(SPA)。这种方式允许我们按需加载模块和控制器,而不是一次性加载整个应用,从而减少...

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

    在Web开发中,JavaScript的异步加载和依赖管理是优化页面性能的关键因素。`script.js`是一个轻量级且功能强大的工具,它允许开发者实现异步加载JavaScript文件,并有效地管理它们之间的依赖关系,从而提升网页的加载...

    vue前端性能优化01

    8. **异步组件**:Vue.js允许定义异步组件,将组件的加载延迟到实际需要的时候,这样可以加快页面的初始渲染速度。 9. **优化模板**: - 使用`v-once`指令一次性渲染元素,之后即使数据改变,也不会重新渲染。 - ...

    前端性能优化

    9. **异步加载**:将非阻塞脚本放在页面底部,或使用异步加载方式,不阻碍DOM渲染。 10. **使用最新的HTML、CSS和JavaScript技术**:如HTML5的离线存储、CSS3的硬件加速等,这些新技术可以提高性能。 在实际开发中...

    原生无依赖预加载插件

    预加载技术的核心是预先获取用户可能需要但尚未立即使用到的资源,如图片、音频、视频或脚本,以便在实际需要时能够更快地加载和执行,减少页面加载延迟。 在JavaScript开发中,预加载常用于处理异步资源加载,避免...

    web前端优化知识总结+笔试+面试总结[参照].pdf

    此外,还可以使用异步加载(async属性)或延迟加载(defer属性)来避免脚本阻塞。 代码级别的优化主要包括: 1. DOM操作优化:减少DOM遍历和修改,利用DocumentFragment批量操作,避免频繁的DOM操作导致的重绘和...

    Webpack 实现 AngularJS 的延迟加载

    Webpack可以监视文件的变化,并将所有依赖打包成一个或多个bundle文件,这些文件可以异步加载,从而实现延迟加载。 文章中提到的AngularUI Router是一个用于构建AngularJS单页应用的路由库,它允许开发者在应用中...

    vue+webpack实现异步组件加载的方法

    * 需要使用require.ensure函数来异步加载组件。 * 需要在Vue组件中使用`components`选项来定义异步组件。 * 需要注意异步组件加载的顺序,以避免加载顺序错误。 使用Vue和Webpack实现异步组件加载可以有效地减少...

    面试题前端

    -懒加载:延迟非首屏内容的加载。 - Tree Shaking:移除未使用的ES6模块。 - Code Splitting:按需加载,减少初始加载量。 - 预加载、预读取和预解析:提前加载资源。 - 使用CDN加速静态资源加载。 8. 响应式...

    前端面试经验.zip

    - 异步加载策略:异步脚本,延迟加载(defer与async属性)。 5. **网络知识**: - HTTP/HTTPS协议:状态码,请求头,响应头,缓存机制。 - WebSocket:实时通信,与HTTP的区别。 - 安全性:跨站脚本攻击(XSS)...

    AngularJs 动态加载模块和依赖

    AngularJs 动态加载模块和依赖是前端开发中常用的一种优化技术,可以在不影响页面加载速度的前提下,按需加载用户所需的功能模块,从而提升用户体验和性能。在AngularJs中实现模块和依赖的动态加载涉及到多个知识点...

    大数据时代性能与缓存的优化

    在大数据时代,面对海量的数据处理和分析,性能与缓存的优化显得至...综上所述,大数据时代的性能与缓存优化涉及多个层面,从数据库设计到前端优化,再到缓存策略的选择与实施,都需要全面考虑,以实现系统的高效运行。

    前端开源库-smooth-fe

    "前端开源库-smooth-fe" 是一个专注于前端性能优化的开源项目,它的主要目标是提供一套解决方案,使得CSS和JavaScript的加载与执行更加平滑、高效。在现代Web开发中,用户体验是至关重要的,而页面的加载速度和交互...

    2017前端面试题整理汇总

    - 性能优化:如减少HTTP请求、利用CDN、延迟加载、合理使用缓存等策略。 5. **前端框架与库** 面试题可能涵盖React、Vue、Angular等主流框架的基本概念和用法: - React:理解组件化开发,虚拟DOM,props和state...

    渲染篇 4:千方百计——Event Loop 与异步更新策略(1).md

    在前端性能优化的实践中,我们还需要考虑许多其他因素,比如使用CDN来加速静态资源的加载,合理使用CSS和JavaScript的懒加载技术,优化Web Workers的使用策略等。这些技术的共同目的都是为了减少主线程的阻塞时间,...

    前端开源库-qas

    2. **异步加载优化**:可能使用了延迟加载(lazy loading)或按需加载(on-demand loading)策略,只在需要时加载相关脚本,减少初始加载时间。 3. **错误处理**:可能包含对脚本加载和执行过程中可能出现的错误的...

    浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结.docx

    - **AMD**:针对浏览器环境设计,支持异步加载,适用于需要高性能加载的大型Web应用。 - **CMD**:结合了AMD的优点,同时支持更灵活的依赖管理和模块加载机制,适用于大型项目中的动态加载需求。 在实际开发中,...

    前端 每日代码 中级进阶 JavaScript 优化 css优化

    在前端开发领域,中级进阶阶段的开发者通常需要掌握更深入的JavaScript和CSS优化技巧,以提升网页性能和用户体验。JavaScript作为前端的核心语言,优化它能够显著提高页面加载速度和运行效率;而CSS优化则关乎页面...

    构建高性能移动web

    - 代码分离:将同步加载的代码和异步加载的代码分离,以减少首屏加载时间。 - 使用浏览器缓存:合理设置缓存策略,减少重复加载相同资源。 - 前端性能监控:采用性能监控工具持续监测Web应用的性能,快速定位性能...

Global site tag (gtag.js) - Google Analytics