我最近提到,一个快速的Web App的关键是Ajax架构、Javascript和缓存。虽然这样说是基于我的经验——我并没有每一项的贡献的实际数据或者量化的可能节省的性能。但请听我细说~~

Ajax架构——Web 1.0的基于用户每次操作来重新加载页面显然不是正确的选择。让用户拉下页面(移动终端拉下页面来刷新的方法)然后重新请求没有任何改变的资源会是一种很 2B的用户体验。使用Web 2.0的App来维持稳定的UI就会更优雅,而且Ajax允许我们通过轻量的数据API请求和客户端Javascript来实现内容更新,这会显得平滑而 快速。

Javascript——Javascript是网站性能的中流砥柱,但是几年前它更糟糕。还记得吗?过去通常会加载一个脚本,然后阻塞HTML解析和页面中其它资源的下载。脚本一次只下载一个!在2009年,IE8成为第一个支持并行脚本加载的 浏览器。Firefox 3.5、Chrome 2、Safari4也很快跟进了,然后最近Opera 12也才跟上队伍。(在我看来对网站性能来说,并行脚本加载是唯一的、最重要的改进)除了加载脚本以外,Javascript引擎自身的速度也有了显著的 提高。所以我们比几年前强太多了。但是当我深入研究主流网站的性能的时候发现Javascript依然是导致网站比较慢的最常见的因素,特别是减慢渲染。 这主要源于几个原因。比如,Javascript请求已经增加到了约200kb了。浏览器仍然屏蔽Javascript的一些行为,比如,在有些浏览器中一个后面跟有内联脚本的样式会阻塞后面资源的下载。然后直到我们开始广泛支持渐进增强之前,很多网页在等待一个比较大的javascript加载、解析和执行之前还是一个空白页面。

缓存——更好的缓存对第一次访问的用户来说并不会让网站更快。但是在web app的背景下,我们谈论的用户是那些会停留较长时间或者会再次访问的人。在创建web app体验的过程中,与桌面页面和Native app对比,缓存是一个关键的因素。缓存让我感到忧伤。站长们并没有尽可能多的使用缓存。58%的请求没有缓存header,89%缓存期小于一个月尽管其中的38%没有变化。浏览器缓存太小,他们的清除算法需要更新。我们有带有超级简单API的LocalStorage,但是浏览器厂商说它对性能有害。应用缓存(application cache)是一个很稳重的方案,但是它比较难用(请查看Jake Archibald的牛B的分享——不知道为什么,这个国外的视频无法播放,可先查看与之对应的PPT)。

结语:

网站性能优化是前端开发的一个永恒的话题,也是前端工程师的基本技能,steve shoulder的这篇文章很有用,重点是,老外思考和解决问题的方法值得我们学习——那就是用事实和数据说话,而我们通常很少思考“为什么”和“真的是这样吗?”。。。

本文整理自:Keys to a fase web app
中文原文:快速web app之道
请尊重版权,转载请注明来源,多谢~~

快速web app之道相关推荐

  1. 快速生成 web app 动态展示机器学习项目

    1. Streamlit 一句话,Streamlit是一个可以用python编写web app的库,可以方便的动态展示你的机器学习的项目. 优点 你不需要懂html, css, js等,纯python ...

  2. 从 SPA 到 PWA:Web App的下一站在哪?

    从AJAX(Asynchronous JavaScript + XML,异步JavaScript和XML)开始, 尤其是 AngularJS 推出之后,SPA(Single Page App,单页应用 ...

  3. 如何使用Next.js创建动态的Rick and Morty Wiki Web App

    Building web apps with dynamic APIs and server side rendering are a way to give people a great exper ...

  4. Python+Dash快速web应用开发——基础概念篇

    作者:费弗里 来源:Python大数据分析 ❝本文示例代码与数据已上传至https://github.com/CNFeffery/DataScienceStudyNotes ❞ 1 简介 这是我的新系 ...

  5. 你的首个 Progressive Web App

    Progressive Web Apps 是结合了 web 和 原生应用中最好功能的一种体验.对于首次访问的用户它是非常有利的, 用户可以直接在浏览器中进行访问,不需要安装应用.随着时间的推移当用户渐 ...

  6. IE7的web标准之道——7:(修正)float双倍margin bug

    IE7的web标准之道 IE历来被web标准的拥护者所诟病,而当FireFox横空出世以后,更多的网页制作者开始关注web标准设计.看着FireFox的市场占有率不停的上升,微软终于推出了IE7.但I ...

  7. 力软 框架 转 mysql_快速web开发框架——learun framework

    快速web开发框架--learun framework 一个好的 web技术框架往往与他速度有关,他需要帮助程序员尽可能快的完成项目的同时确保它的 安全性, 力软敏捷框架是基于 .net语言的 web ...

  8. 何为Web App,何为Hybird App

    这些概念听起来很火,当下也很流行,真正理解起来却并非易事.如果让我来全面的解释Web App和Hybird App,我觉得还有些困难. 这篇文章只是我深入了解移动领域开发过程中的不断整理和总结,其中涉 ...

  9. web app开发技巧总结

    Web APP开发技巧总结 一.META/LINK相关: 1.百度禁止转码 通过百度手机打开网页时,百度可能会对你的网页进行转码,往你页面贴上它的广告,非常之恶心.不过我们可以通过这个meta标签来禁 ...

最新文章

  1. 016-热更新之FishingJoy一
  2. R语言dplyr包移除dataframe数据列实战(Remove Columns)
  3. springboot:自动配置原理入门
  4. 手机录音失真_“手机都能录音,还要啥录音笔”,四点原因让说这话的人啪啪打脸...
  5. tf.data.Dataset 用法
  6. 1.QT中播放视频,录音程序的编写
  7. 程序员的数学 pdf_作为一个程序员,分享我日常学习方式,自学渠道和方式
  8. python 历遍子弹_python之子弹移动
  9. php+预览和下载pdf文件,vue实现在线预览pdf文件和下载(pdf.js)
  10. linux waitpid子进程,关于waitpid()函数的问题,为什么最后子进程没退出来啊?...
  11. TCP/IP基础介绍
  12. springboot集成rocketmq
  13. iOS 手势操作和事件传递响应链
  14. 质数/素数 - 合数
  15. 2017年江苏省高等数学竞赛试题解答手稿
  16. 蓝桥杯 STEMA 考试选择题模拟题
  17. MP地面站二次开发教程(四)地面站优化及其功能测试
  18. 拼多多不补单有什么后果?怎么避免补单风险?
  19. Keil中文显示设置
  20. A题 海岛争霸

热门文章

  1. C++:fseek( FILE *stream, long offset, int origin )
  2. 浅谈opencl之整体框架
  3. U-GAT-IT中的一些细节以及变量含义
  4. flume从指定网络端口采集数据输出到控制台
  5. HDFS文件系统存储机制
  6. Bootstrap居中显示
  7. [Unity] GameFramework 学习记录 4:第三人称控制器
  8. MATLAB调用USB摄像头实现过程
  9. C++算法八:快速排序
  10. mysql事务处理什么意思_mysql事务是什么意思