思路
从前端的角度来说,访问时长=总大小/网速,所以要提高效率,要么减小需要传输的内容,要么提高网速。
对于企业内部应用来说,例如电网、电信、石油、石化等企业,很多应用在内网,可以通过提高内网带宽来提高网速。对于互联网来说,网速是不可控的,所以只能在传输内容上做文章。
总体上我觉得有两个思路:一是确实减小内容,二是将要加载的内容分为多次加载,也就是延迟加载。
一、确实减小内容
1、使用工具分析问题:首先你要知道你传输的内容有多大、请求多少次,利用chrome浏览器的调试工具(ff等也都有类似工具),选择网络选项卡、分析选项卡等,就可以清楚的看到,自己的网页有多少个请求,每次请求传了多少东西,花了多长时间,一共多长时间等等。然后就是从最耗时的地方下手。因为通常80%的问题只出在20%的东西身上。
2、系统图片:罪魁祸首一般是图片,因为js、css、html等毕竟是文本,只要你不瞎搞,一般问题不大。看看chrome的控制台,看网站下载了多少个图片,这些图片有多大。然后要做的就是压缩这些图片,减小图片的尺寸、降低图片的质量,等等。至于压缩到什么程度,这要看你自己的需求了,通常是越小越好,直到你觉得质量再低效果就无法接受了。
3、用户图片:上面的方法有个问题,只能搞定自己系统的图片,搞不定用户上传的图片,现在手机拍的照片动辄6-7MB,小的也有2MB以上,一个页面随便来几个就别想打开了。所以需要对用户上传的图片也进行压缩,推荐在用户上传时采用html的canvas组件进行压缩,传送门:http://www.cnblogs.com/xiao-yao/p/3608223.html,可以做到缩放图片尺寸,也可以压缩质量。看不懂的可以Q群38823977找我。
4、Javascript:图片问题解决了一般就差不多了。如果还达不到要求,就再进一步分析。通常来说下一个要解决的就是js。搞开发的都懒,喜欢搞一个公共页面,把可能需要的一堆js都放进去,光js就好几MB,建议不要这样搞。1)只引用自己需要的js。2)js做压缩,例如用jquery.min.js替换掉jquery.js。3)采用异步方式加载js,只有在你确实使用需要某个js的时候才加载,比如采用sea.js,传送门http://seajs.org/docs/
5、css sprite:又回到图片,主要针对css中用的那些小的背景图,比如你处理原型边框的小图,一般一个网站会有10-200个这样的小图,导致请求次数过多,网站变慢,这时就可以考虑把这一堆小图整合在一起,然后用css中背景图片定位的方式来显示。把200个请求变成一个请求,提高访问速度。这个技术除了加快你的访问速度,另一个好处是这些会在同一时间显示,看起来也舒畅一些。传送门:http://www.cnblogs.com/babycool/archive/2012/04/15/2450187.html
二、延迟加载
1、图片:老路子,首当其冲当然还是图片,如果你的图片已经压缩的差不多了,但是还是太大、太多,比如淘宝网,那就延迟加载这些图片。通常有两种方式,效果看淘宝即可。1)打开页面的时候,首屏内容用默认图片替代,加载后再替换。2)非首屏内容,我指的是下拉滚动条才能看到的内容,就先不加载,用户滚动时才加载。
2、html滚动加载,类似于微博,默认加载10条,滚动到下面才加载更多。
3、html5的prefetch技术。就是在你访问一个页面的时候,预判你要访问的下一个页面,于是提前加载,当你访问的时候,就会感觉瞬间加载出来了。有没有感觉很高大上,说白了就是浏览器闲着没事的时候帮你提前加载点东西。其实使用挺简单的,传送门http://www.jianshu.com/p/7f58ddfc1392
三、最后
以上算是近期研究的记录,欢迎大家补充。或者加入Q群38823977一起交流。
相关推荐
在前端开发中,实现中英文翻译切换是一项常见的需求,尤其对于多语言网站或者国际化的应用程序来说至关重要。...了解以上概念后,你可以进一步学习和掌握前端国际化(i18n)的最佳实践,以创建更加完善的多语言应用。
分页是一种数据展示策略,将大量的数据分割成多个小部分,每次只显示一部分,用户可以通过翻页来查看更多的数据。这可以有效减少页面加载时间,提高页面响应速度,同时也方便用户浏览和管理数据。 2. 分页的组成...
通过以上知识点的学习,初学者可以更快地掌握JavaScript的基础语法,并能够利用这些基本技能进行Web前端功能的设计和实现。这些内容不仅适用于入门级学习者,对于有一定经验的开发者来说,也是很好的复习资料。
在本地开发时,这个库可以让你自定义TLD,如".localhost",然后将特定的域名映射到本地项目的IP地址,这样浏览器就能正确地解析并加载你的应用。 使用local-tld-lib的好处主要有以下几点: 1. **提高开发效率**:...
这种服务的实现提高了用户体验,因为加载速度更快,减少了网络延迟。 项目中的“bower-angular-translate-storage-local-master”文件可能是一个Git仓库的主分支,通常包含源代码、文档、示例以及必要的配置文件。...
"前端大厂最新面试题-binary-search.docx" 本资源是前端大厂最新面试题 binary-search.docx,涵盖了二分查找、二叉搜索...本资源涵盖了多个知识点,旨在帮助读者快速地掌握这些知识点,从而更好地应对前端大厂的面试。
**深入挖掘ASP.NET 2.0系列课程(2)** 本系列课程主要聚焦于ASP.NET 2.0的高级特性...通过深入学习和实践,你将能够熟练掌握如何利用ASP.NET 2.0的`ObjectDataSource`控件,快速构建高效、可维护的N层架构Web应用程序。
### 前端开发工具最好用的快捷键详解 在前端开发过程中,高效地使用快捷键可以极大地提高编码效率和工作质量。本文将详细介绍一系列常用的前端开发工具快捷键,帮助开发者更加熟练地掌握这些技巧。 #### 1. 全局...
- **功能介绍**:`Alt + V + Y + N`或`Ctrl + Shift + S + Web Developer’s 工具栏`可以去除网页中的CSS样式,以便查看网页的原始结构。 - **应用场景**:网页开发调试、理解网页布局原理等。 #### 17. 恢复CSS...
根据给定的文件信息,我们可以将内容拆解并归纳为几个关键的知识点: ### 一、Web标准与浏览器兼容...以上是对给定文件信息中的知识点进行了详细的解释和补充,希望能够帮助读者更好地理解和掌握前端领域的相关知识。
在IT行业中,jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。...无论你是前端开发者、网页设计师还是网站管理员,掌握这个插件的使用将对你的项目大有裨益。
在前端开发领域,"用户协议样式模板后H5页面"是指一种特定的设计模式,用于创建在用户首次访问网站或应用时展示的法律条款和条件页面。这类页面通常包含服务条款、隐私政策、使用协议等内容,确保用户在使用产品或...
2. **路由管理**:基于 Vue Router 进行路由配置,支持懒加载,使得页面加载更快,同时方便进行权限控制和导航。 3. **状态管理**:采用 Vuex 进行全局状态管理,使得数据在组件间传递更为便捷,同时也方便实现复杂...
- **前端框架**:如果项目采用了Blazor或Vue.js等前端框架,我们需要了解其基本用法和原理。 通过深入研究这个CMS项目的源码,我们可以提升对ASP.NET Core的理解,掌握权限管理和内容管理系统的实现方法,进一步...
### 知识点一:HTML5在网页设计中...通过上述知识点的学习与实践,学生不仅可以掌握网页设计的基本技能,还能进一步了解如何构建高质量、用户友好的静态网页模板,这对于完成学术作业或参与实际项目都有着重要的意义。
例如,单向链表插入和删除操作通常比数组更快,但随机访问则较慢。 队列是一种先进先出(FIFO)的数据结构,类似于现实生活中的排队。它有两个端点:前端(front)和后端(rear)。元素在后端添加,在前端移除。...
- **特点**:JQuery是一种简化JavaScript操作的强大库,能够帮助开发者更快地实现页面交互。 - **获取方式**:通过B站链接观看。链接为:https://www.bilibili.com/video/av14538053 #### 四、JavaWeb阶段 **4.1 ...
- **Flexbox**:一种更为灵活的布局方式,可以轻松实现居中对齐、换行等复杂布局。 - **Grid**:提供了一种二维网格布局模型,非常适合构建复杂的网页布局。 ### 3. JavaScript与jQuery #### 3.1 JavaScript简介 -...
【Laravel 开发与 Laravel October】\n\nLaravel 是一个基于 PHP 的开源框架,以其优雅的语法和强大的功能在Web开发领域广受欢迎。...熟悉并掌握 Laravel 和 October CMS 的开发技巧,将极大地提升你的Web开发能力。