优化网站起始载入所花费的时间

news/2024/5/1 21:45:38/文章来源:https://blog.csdn.net/weixin_34336292/article/details/89032637

最近对单页面比较感兴趣,想用单页面实现原生app的效果,但单页面应用将多页面汇集到一个页面上,由此可知初始加载的数据会很大,这样会导致在初始加载网页的时候会有一个比较漫长的等待时长,特别是网络不好的情况下等待时长就更不能让用户满足。

为了解决这个问题,我想到一个解决方法,在页面先不加载js和css文件,首先展示一些准备好的图片或者等待页面(数据尽量小),然后等onload事件触发的时候再一一将js文件和css文件载入到页面。


window.onload = function(){var scripts = ["/static/js/jquery-1.8.3.min.js","/static/js/fuc.js","/static/js/app.js"];var s = 0;scripts.forEach(function(scriptSrc){var head = document.getElementsByTagName('head')[0];var script = document.createElement('script');script.type = 'text/javascript';script.charset = 'utf-8';script.async = true;script.timeout = 120000;script.src = scriptSrc;head.appendChild(script);script.onload=function(){s++;if(s == scripts.length){var load = document.getElementById("load");var app = document.getElementById("app");load.style.display = "none";app.style.display = "block";}}});}

如代码所示,当所有的js都成功加载后,再将主页面对应的div显示出来,这样用户的体验才会比较良好。这里定义了一个变量s,当变量s等于加载的js的数量的时候才会显示主页面,所以如果出现一个没有成功加载都会导致页面不会出现。值得一提的是async这个属性等于true的时候是异步加载,这样加载速度会更加快,但是这也会出现一个问题:如果出现一个js会依赖另一个js的时候就会可能出现错误,就比如上面的代码中的app.js用到了jquery,当app.js加载速度会jquery-1.8.3.min.js更快的时候会提前渲染,此时jquery并没有加载,所以app.js使用到jquery的地方就会报错。

Script异步加载还可以用defer属性,defer属性与async不同的是defer载入成功不会自动渲染而是等到onload事件触发时才会开始执行,而async属性是文件载入成功就立即执行。

因上面我是等着onload方法触发后才开始载入js文件,所以使用async或者defer差别不大
如果是要完全避免上面的问题则是要等依赖的js加载成功,触发script.onload方法时再去加载该js,则可以解决因加载速度比依赖的js的加载速度更快出现的问题。还有一种方法,就是把所有的js打包到一个js里面,我这里是使用了webpack打包程序将整个程序都打包到了一个js,这样加载就不会有问题了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_750999.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php给留言分配id_对网站建设一无所知的6人大学生团队,如何分配学习任务

6个人的大学生团队,对如何建设一个网站一无所知,该怎么分配学习任务,分别学习啥,才能建设一个运行稳定的网站。首先要了解:什么是域名?什么是服务器?什么是web技术?什么是UI设计&…

图文详解鼠标事件CSS:hover和JS:mouseover的区别

在工作中为了使页面更具有吸引力,前端开发人员经常会在页面中加上鼠标移入和移出的效果。鼠标移入移出的设置,一般有两种方法,一种是单纯用CSS中的hover伪类,另一种可以用JS 中的DOM事件,即onmouseover和onmouseout。接…

PHP 进阶之路 - 亿级 pv 网站架构实战之性能压榨(收藏)

性能优化的原则 性能优化是建立在对业务的理解之上的性能优化与架构、业务相辅相成、密不可分的 性能优化的引入 我们先看一张简单的 web 架构图 从上到下从用户的浏览器到最后的数据库,那么我们说先前端的优化。 10年架构师领你架构-成长之路-(附面试…

商城类网站头部导航 贼靠谱 建议复制!!!

效果 reset.css <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>index</title><link rel"stylesheet" href"css/reset.css"><link rel"stylesheet" hr…

大型php网站性能和并发访问优化方案(转载自php中文网)

网站性能优化对于大型网站来说非常重要&#xff0c;一个网站的访问打开速度影响着用户体验度&#xff0c;网站访问速度慢会造成高跳出率&#xff0c;小网站很好解决&#xff0c;那对于大型网站由于栏目多&#xff0c;图片和图像都比较庞大&#xff0c;那该怎么进行整体性能优化…

nopCommerce 3.9 大波浪系列 之 路由扩展 [多语言Seo的实现]

一.nop中的路由注册 在Global.asax,Application_Start()方法中会进行路由注册,代码如下。 1 public static void RegisterRoutes(RouteCollection routes)2 {3 routes.IgnoreRoute("favicon.ico"); 4 routes.IgnoreRoute("{resource}.axd/{*pat…

长尾词推广系统推荐乐云seo_万词霸屏推广的怎么样

随着网络的发展,企业更加需要做好网络营销发展。万词霸屏营销由此诞生,成为了企业互联网宣传的有力工具。如果想要达到在百度或其他搜索引擎形成上万甚至更多的关键词首页排名,就需要有强大的数据挖掘和采集能力,例如:站长之家、爱站网、5118大数据网、站长工具等第三方站长平台…

我采访了同事,让他掏出了每天都会浏览的干货网站

在周六的晚上&#xff0c;我日常去到公司写文章。想写一篇程序员常浏览的网站&#xff0c;刚好同事在我后面看我在干什么。于是我就对他进行了采访&#xff0c;问了一下他常去的网站有哪些。得到蛋总的许可这次我采访的是鸡蛋&#xff0c;他跟我一样大&#xff0c;但是技术比我…

程序员 6 个接私活的网站,你有技术就有钱!

作者 | 发哥来源 | GitHubDaily本篇文章会向大家推荐国内外几个接外包比较靠谱的平台&#xff0c;主旨是贵精不贵多。因此&#xff0c;像「猪xx」这种会让程序员自贬身价&#xff0c;扰乱市场规则的网站&#xff0c;便不会出现在下方推荐列表中。下面开始进入正题。国外篇如果你…

Dubbo爆出严重漏洞!可导致网站被控制、数据泄露!附解决方案

来源&#xff1a;华为云原文地址&#xff1a;https://www.toutiao.com/a6793181470287462916/2020年2月13日&#xff0c;华为云安全团队监测到应用广泛的Apache Dubbo出现一个较为严重的漏洞&#xff1a;反序列化漏洞&#xff08;漏洞编号&#xff1a;CVE-2019-17564&#xff0…

6 个接私活的网站,你有技术就有钱!

作者 | 发哥来源 | GitHubDaily本篇文章会向大家推荐国内外几个接外包比较靠谱的平台&#xff0c;主旨是贵精不贵多。因此&#xff0c;像「猪xx」这种会让程序员自贬身价&#xff0c;扰乱市场规则的网站&#xff0c;便不会出现在下方推荐列表中。下面开始进入正题。国外篇如果你…

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

B站网址&#xff1a;www.bilibili.com这真的是一个学习网站&#xff0c;上面提到的咬人喵&#xff0c;欣小萌等等真的好看&#xff0c;咳咳 扯回正题&#xff0c;B站上面有很多优秀的up主&#xff0c;大家在这里可以学到各行各业丰富的专业知识&#xff0c;在下海前&#xff0c…

交公粮了:十一在家我都逛哪些技术网站?

来源|cnblogs.com/three-fighter/p/13641835.html众所周知&#xff0c;程序员是一个需要不断学习的职业&#xff0c;而幸运的是&#xff0c;在这个互联网时代&#xff0c;知识就在那里&#xff0c;等着我们去获取。作为一个 收藏从未停止&#xff0c;学习从未开始 的博主 :(dog…

程序员需知的 58 个网站

来源&#xff1a;cnblogs.com/three-fighter/p/13641835.html众所周知&#xff0c;程序员是一个需要不断学习的职业&#xff0c;而幸运的是&#xff0c;在这个互联网时代&#xff0c;知识就在那里&#xff0c;等着我们去获取。作为一个 收藏从未停止&#xff0c;学习从未开始 的…

SQL 学习最强刷题网站!

大家好&#xff0c;我是乔戈里。今天给大家上点干货&#xff0c;推荐一款之前一直在用的SQL刷题网站—牛客的SQL题库。很多人都知道牛客有面经&#xff0c;但是还不知道有SQL,其实牛客的SQL题目已经有大概500题了&#xff0c;题目内容、产品、讨论区氛围&#xff0c;可以说是国…

京东一面:如何用 Nginx 禁止国外 IP 访问网站,直接凉凉!

学最好的别人&#xff0c;做最好的自己点击关注后端面试那些事&#xff0c;Java面经都在这里来源&#xff1a;toutiao.com/i6860736292339057156/之前看了下 Nginx 的访问日志&#xff0c;发现每天有好多国外的 IP 地址来访问我的网站&#xff0c;并且访问的内容基本上都是恶意…

个人web项目——悦动web网站

大三下&#xff0c;面向web的计算 项目概述&#xff1a; 实现一个关注个人健康的web应用。 功能需求&#xff1a; 1. 健康管理&#xff1a;运动、身体健康&#xff08;如心率、血压等&#xff09;、睡眠等。基于restful实现可穿戴设备的数据采集&#xff0c;测试数据集不…

第一个个人J2EE网站——甜品屋

终于写到最近做的项目啦。甜品屋网站是我们的J2EE大作业&#xff0c;按学号检查演示&#xff0c;由于本人学号太靠前了&#xff0c;首当其冲&#xff08;没错&#xff0c;就是这个成语&#xff09;地被安排到开学第三周的周一早上的第一节课检查。而这个大作业是老师寒假刚开始…

前端css,js缓存提升网站性能

看到知乎上的这篇文章&#xff0c;感觉受益匪浅。怕下次找不到了&#xff0c;就转载在博客里。文末注明出处。 这是一个非常有趣的 非主流前端领域&#xff0c;这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题&#xff0c;入行到现在一直在学习和实践中。在…

Tomcat发布一个网站通过域名访问

以下只是我个人的经历&#xff1a; 1.阿里云购买域名 2.购买阿里云的云服务器 ECS&#xff08;附带弹性公网IP服务&#xff0c;大概5毛钱一天&#xff09;&#xff0c;我用的是Windows Server2012 3.远程桌面连接到Windows Server2012&#xff0c;安装QQ&#xff0c;方便传输自…