文档章节

高性能网站建设读书笔记(2)Ajax

adamduan
 adamduan
发布于 2015/12/01 13:48
字数 738
阅读 32
收藏 1

理解Ajax性能

权衡

过早的优化是万恶之源--Donald Knuth

时间,质量,成本,三选二。(Project Triangle)

增量式开发(incremental development)

迭代式开发,瀑布式开发

大爆炸集成方式(big bang integration)

wiki(Interative and incremental development)

优化原则

优化的目的是希望降低程序的整体开销。

分析应用程序和分析算法密切相关。

在执行时间上有3条错误轴线,避免与错误轴线相交的方法:减少每次迭代的开销,减少迭代的次数,重新设计应用程序。

循环嵌套越多,可优化的选择越少。

必须正确地设计程序。程序不符合要求,运行速度很快也没有意义。

测试Web应用时尽可能模仿真实的用户环境,低端机器和低速网络来测试。

Ajax

重构代码能明显降低复杂性。

依据YSlow规则重构代码 http://developer.yahoo.com/yslow/

Ajax实现方式:发送数据包到服务端(通常是JSON文本),服务端返回另一个数据包(JSON编码)来响应,最后JavaScript用这些数据来更新浏览器的显示。

想通过Ajax方法对性能有积极影响,采取正确地分工至关重要。

数据包应该尽可能小。

常见的错误是把所有应用数据都发给浏览器,这会再次引入Ajax本应避免的延迟问题。这类错误也会增加浏览器需要处理的数据量,从而更加降低性能。

浏览器

使用Ajax库(如:http://developer.yahoo.com/yui/ )

运行程序最大开销往往是DOM而非JavaScript。

Wow!

程序设计者趋向于在Ajax中添加酷炫特效。

使用不当时,这些酷炫特效会由于分散用户注意力或强迫用户等待动画播放完毕从而降低他们的生产效率。

误用特效也会导致不必要的DOM操作,从而带来巨大开销。

酷炫特效只在确实能改善用户体验时才能使用

设计浏览器能胜任的事情。

JavaScript

通常情况下瓶颈不是JavaScript而是DOM。

感觉必须要重构脚本时,首先要评估。我们对于程序的真正开销的直觉往往是错的。只有通过评估,才有把握对性能产生的积极影响。

总结

一切都是权衡。不要浪费时间在那些消耗不大的代码上。

浏览器通常在运行JavaScript上花费的时间很少,绝大部分时间消耗在DOM上。

为质量编程。简洁、易懂且条理分明的代码更易于正确理解、维护和优化。

善加利用Ajax技术能使应用程序运行得更快,用好它关键是在浏览器和服务器之间建立平衡。



© 著作权归作者所有

共有 人打赏支持
adamduan
粉丝 10
博文 84
码字总数 8447
作品 0
大连
程序员
私信 提问
用骆驼祥子读书笔记来解答ZBLOG博客写作的3个技巧[图]

建设博客已经半年了,准确的说应该是7个月了吧,虽然没有取得什么好的进展,但毕竟一直在努力,主要是内容建设上比较麻烦,很难像大站一样获得大量的内容,这是非常头疼的问题。 总之,个人也...

原创小博客
2018/07/11
0
0
高性能网站建设指南 --读书笔记

性能黄金法则: 只有10%~20%的最终用户响应时间花在下载HTML文档上。其余的80%~90%时间花在了下载页面中的所有组件上。 规则1 减少HTTP请求 图片地图 CSS Sprite 合并脚本和样式表 规则2 使...

不是胖子
2013/02/02
0
0
读书笔记网写作六年比卢松松博客的3个差距[图]

读书笔记网是坚持了6年才有所成绩的博客网站,也是采用zblog系统写作的,因为在十年前,zblog可谓相当的有名气,那时候有著名的科技类月光博客,还有知名的互联网类卢松松博客,都是行业佼佼...

原创小博客
2018/06/28
0
0
网站建设笔记:为什么中小学生写读后感都上百家笔记网?(图)

网站建设笔记:为什么中小学生写读后感都上百家笔记网?(图) 一到寒暑假,所有的学生们都万的不亦乐乎,但是到了寒暑假尾期,大家又要开始写作业了,那么,为什么百家笔记网得到了广大学生...

原创小博客
2018/07/31
0
0
《高性能网站建设指南》读书笔记

规则1-减少HTTP请求 请求网页时只有10%-20%的最终用户响应时间花在接收请求的HTMl文档上,剩下的80%-90%时间花在为HTML文档所引用的所有组建(图片,脚本,样式表,Flash等)进行的H...

吞吞吐吐的
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
1
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
3
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
3
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
2
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部