文档章节

高性能网站建设读书笔记(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
博文 83
码字总数 8447
作品 0
大连
程序员
私信 提问
用骆驼祥子读书笔记来解答ZBLOG博客写作的3个技巧[图]

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

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

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

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

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

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

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

吞吞吐吐的
2017/11/09
0
0
网站建设笔记:为什么中小学生写读后感都上百家笔记网?(图)

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

原创小博客
07/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

不可不说的Java“锁”事

前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点...

美团技术团队
刚刚
0
0
ali oss util demo

package com.example.demo;import com.aliyun.oss.OSSClient;import com.aliyun.oss.common.utils.BinaryUtil;import com.aliyun.oss.model.*;import org.slf4j.Logger;import o......

经常把天聊死的胖子
2分钟前
0
0
Windows系统中eclipse修改字体为Courier New

背景:在eclipse修改字体时没有找到Courier New字体; 解决: 1.在计算机地址栏上输入“C:\Windows\Fonts”路径,回车打开Win10字体文件夹。查看是否有Courier New字体;如下图: 2.如果有该...

anlve
2分钟前
0
0
使用hexo做博客网站

hexo有什么用? hexo 可以把md文件生成html静态网页。 hexo官网:https://hexo.io/zh-cn/ 本地安装hexo。 npm install -g hexo-cli#生成blog(名字任意)文件夹,并且在这个文件夹里面初始化...

王坤charlie
2分钟前
0
0
RabbitMQ+PHP 教程四(Routing)用yii2测试通过

开始 在本教程中,我们将为它添加一个特性——我们将只可能订阅消息的一个子集。例如,我们只能够将关键错误消息直接指向日志文件(以节省磁盘空间),同时仍然能够打印控制台上的所有日志消...

hansonwong
6分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部