一.加载和执行

1.推荐所有的script标签尽可能放到body标签的底部,以尽量减少对整体页面下载速度的影响。
2.组织脚本
减少页面包含的scirpt标签数量,可以把多个文件合并成一个。
3.无阻塞脚本
1).延迟脚本
defer:html解析完才加载,执行顺序和加载顺序有关。
async:html加载完就执行,执行顺序和加载顺序无关。
2).动态脚本元素(推荐)
文件在该元素被添加到页面时开始下载。这种技术的中i单在于:无论在何时启动下载,文件的下载和执行过程呢个不会阻塞页面其他进程。
但是有兼容问题,解决办法如下:
function loadScript(url, callback) {var script = document.createElement_x_x('script');script.type = "text/javascript";if (script.readyState) {//IEscript.onreadystatechange = function () {if (script.readyState == 'loaded' || script.readyState == 'complete') {script.onreadystatechange = null;callback();}};}else{//其他浏览器script.onload=function(){callback();}};script.scr=url;document.getElementsByTagName('head')[0].a(script);};loadScript('file.js',function(){console.log('file.js is loaded')});
loadScript('file.js',function(){loadScript('file2.js',function(){loadScript('file3.js',function(){console.log('all is load')})})});复制代码

XMLHttpRequest脚本注入(大型web不推荐)

var xhr=new XMLHttpRequest();xhr.open('get','file.js',true);xhr.onreadystatechange=function(){if(xhr.readyState==4){if(xhr.status>=200&&xhr.status<<span style="color: #b5cea8;">300||xhr.status==304){var script=document.createElement_x_x('script');script.type='text/javascript';script.text='xhr.responseText';document.body.a(script)}}};xhr.send(null);复制代码
总结:减少JavaScript对性能的影响。
1./body闭合标签之前,将所有的script标签放在页面底部。这样确保在脚本执行前页面已经完成了渲染。
2.合并脚本,页面中的script标签也少,加载也就越快,响应也就越快,无论外链还是内嵌脚本都是如此。
3.使用多种无阻塞的javascript方法:
3.1使用script的方法defer属性。
3.2使用动态创建script元素来下载并执行代码。
3.3使用XHR对象下载javascript代码并注入页面中

js基础总结性能优化相关推荐

  1. js 前端抠图 性能优化

    原文链接: js 前端抠图 性能优化 上一篇: js 生成器 协程 下一篇: wasm 和cpp std 的使用 性能对比 下图是 字符串键 + 欧式距离 + 四方 字符串键 + 欧氏距离 + 八方 ...

  2. 揭秘 Vue.js 九个性能优化技巧

    gitHub 源码:https://github.com/Akryum/vue-9-perf-secrets 这篇文章主要参考了 Vue.js 核心成员 Guillaume Chau 在 19 年美国 ...

  3. 查询mysql数量_Linux 运维基础 Mysql性能优化

    1, 查看MySQL服务器配置信息 mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 mysql> show global status; 3, 慢 ...

  4. Unity 对GPU的基础性能优化

    Unity GPU 性能优化 遇到的问题 分析工具 解决方法 1.不在代码层面的优化方法 2.部分在代码层面进行优化 特别说明 遇到的问题 因为项目中采用的主机为工控机,不带有独立显卡,CPU采用的是 ...

  5. FlutterWeb性能优化探索与实践

    点击"开发者技术前线",选择"星标" 让一部分开发者看到未来 来自:美团技术团队 美团外卖商家端基于 FlutterWeb 的技术探索已久,目前在多个业务中落地 ...

  6. 嵌入式linux内存使用和性能优化

    这本书有两个关切点:系统内存(用户层)和性能优化. 这本书和Brendan Gregg的<Systems Performance>相比,无论是技术层次还是更高的理论都有较大差距.但是这不影 ...

  7. Hibernate性能优化之EHCache缓存

    像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...

  8. ES性能优化之查询优化笔记(一)

    文章目录 前言 一.mappings优化 二.查询语句优化 三.强制段合并(force merge) 四.过滤查询(filter) 五.路由(routing) 六.游标查询(scroll) 七.避免使 ...

  9. vue2的9种性能优化方式

    文章目录 总原则 零.不要过早优化 一. 使用函数式组件 适用情况 原理 官网说明 实例与分析 二. 组件拆分 适用情况 原理 实例与分析 三. 尽量适用普通变量而非响应式变量 适用情况 原理 实例与 ...

最新文章

  1. slider(滑动条)控件模版,样式--用图片定义控件模版
  2. bing浏览器_微软推出全新 Edge 浏览器,这 3 大特色亮点 Chrome 都没有
  3. php 未定义偏移,未定义的偏移PHP错误,尝试从文件读取
  4. Ubuntu没有chkconfig服务解决办法
  5. 12.1简介Object类
  6. Java中实用类:Date、Calendar、Math、Random、String、StringBuffer的用法
  7. oracle locked time,ORACLE distributed_lock_timeout参数
  8. 动画学信奥 漫画学算法 CSP-J入门级 (三)、算法(依据「NOI大纲」)
  9. java 正则表达式学习
  10. 读书笔记_量化交易如何建立自己的算法交易01
  11. LM NTLM ophcrack RainBow table (转)
  12. 子模的性质(submodular)
  13. 北斗卫星导航系统基础篇之(三)——北斗缩略词详解
  14. 外键设置中的CASCADE、NO ACTION、RESTRICT、SET NULL的区别
  15. 101. Domino 10 就要来了
  16. 项目成功部署到idea ,并且成功运行,访问却是404
  17. 力扣 (LeetCode)-对称二叉树,树|刷题打卡
  18. 3D打印机T3升级corexy  制作过程(二)
  19. vocab.get(word, vocab.get(UNK))
  20. openFrameworks实现的简单坦克对战游戏-Tank War

热门文章

  1. 小括号教学设计导入_【教资面试】语文政治历史地理教学设计答题技巧!
  2. GPU Gems1 - 9 有效的阴影体渲染
  3. error C1853: “Debug\BigBuffer.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)...
  4. Dalvik指令备忘
  5. 【BZOJ1500】[NOI2005]维修数列 Splay
  6. SQL Server 数据库的维护(四)__游标(cursor)
  7. jquery检测浏览器类型
  8. 国内主流.NET CMS系统整理
  9. 【转】最牛B的编码套路
  10. lightoj 1214