摘要: 关注网站前端性能不得不提到一篇文章,Best Practices for Speeding Up Your Web Site,他来自yahoo性能研究团队,文章列出了7类35条网站提速的最佳实践。Yahoo的最佳实践1,内容减少HTTP请求、减少DNS查找、避免重定向、缓存Ajax、按需加载组件、预加载组件、减少DOM元素的数量、分离组件到不同的域名、尽量不使用iframe、避免4042,服务器使用CDN、启用浏览器缓存(添加Expires或Cache-Control、配置ETags)、启用Gzip压缩、尽早刷新缓冲区、Ajax使用GET请求方式、避免Image标签src属性为空3,Cook. 阅读全文
posted @ 2012-11-10 19:02 for certain 阅读(1454) 评论(1) 推荐(0) 编辑
摘要: 这是读书笔记的最后一篇,说的是数据库,就像之前分享的缓存,不管是读缓存或写缓存,可以减轻数据库的压力,但是缓存随时可能失效或过时,也并不是所有的情况都适用缓存,数据库的优化和扩展也是必须重视的。运行状况 如何对已运行的数据库进行优化和扩展,以及我们的优化后效果如何,这不是我们想象的,必须在数据的基础上。首先介绍的就是运行状态的监控,书中以mysql为例子,除了自带的命令:mysql> show status;mysql> show innodb status;之外,还有mysqlreport工具可用,它把上述命令的输出内容进行处理,以更容易理解的方式呈现给我们。 对于sql ser 阅读全文
posted @ 2012-09-23 16:37 for certain 阅读(1769) 评论(0) 推荐(0) 编辑
摘要: 这一篇之所以命名分离之后,是因为当我们前面负载均衡的介绍,假设每台实际服务器都是相同的,就是拥有相同的文件和程序。实际上如何要实现的每台实际服务器都有相同的资源呢?这篇我们将分享网络共享、内容分发同步和分布式文件系统。网络共享 这个方式就是把资源放到一个网络上的服务器,多个实际请求处理服务器都可以以相同的方式访问到这些资源,像我们常见的数据库服务器,我们的程序都可以网络的方式访问数据库,获得数据后,生成HTML,返回给用户,还有我们前面关于缓存中提到的缓存服务器,这里我们再介绍下文件共享系统。 文件共享系统让你不必考虑网络访问和传输的细节,你可以像访问本地文件系统一样访问网络上其它服务器文件. 阅读全文
posted @ 2012-09-13 15:07 for certain 阅读(1598) 评论(0) 推荐(0) 编辑
摘要: 很多的网站一开始并不需要太大的规模,但是做为网站设计者从一开始就必须考虑到扩展,做一个可扩展性强的架构。所谓可扩展性就是系统通过规模的扩展来提高系统的承载能力,毕竟服务器自身的垂直扩展很快就会受到制约,单机很快便不能满足我们的需求,因此这种能力往往通过增加物理服务器或集群节点等方面来实现,这种能力越强,承载能力可提升的空间也越大。而web站点的水平扩展,负载均衡是一种最常见的手段。下面介绍一下几种实现负载均衡的方式。HTTP重定向 HTTP重定向,相信对于所有web程序员都不陌生,例如我们请求某个页面时,被转向登录页,登录页面之后又被转到了某个页面。大致来说就是,浏览器请求某个URL后,服务. 阅读全文
posted @ 2012-09-09 12:36 for certain 阅读(1818) 评论(1) 推荐(0) 编辑
摘要: 组件分离可以说是很多网站都在采用、最基础的提高网站吞吐的策略。比如我们看淘宝:像fuzhuang.taobao.com、home.taobao.com这样二级站点的分离,再比img01.taobaocdn.com、img02.taobaocdn.com的图片分离,a.tbcdn.cn样式的分离等,都是组件分离。什么是组件分离 这里的组件就是所有基于url访问的资源,如动态内容、图片、脚本、样式等;组件的分离就是这些组件的垂直分割,不同的资源分布到不同的服务器或相同服务器的不同逻辑单元,并且配以独立的域名(顶级域名或二级域名)。从请求表面上,请求不同站点的资源,但是他们仍可以完美组成一个完整.. 阅读全文
posted @ 2012-09-03 16:38 for certain 阅读(2838) 评论(10) 推荐(4) 编辑
摘要: 其实在说缓存之前,还有其它关于网络和服务器硬件、系统的基础知识,其中在网络一节中:着重介绍了网络模型和带宽的概念,提供了一个我们去计算一次网络传输时间的方法,以及在当前联通、电信网络的情况下,如何部署服务器,做好互联互通。在服务器硬件、系统能力方面,突出了一个服务器能力的指标:吞吐率,介绍了各个主要部件和系统的基础知识。了解并熟悉这方面的知识,对我们构建一个优秀的系统是不可缺少的,笔者所有的这些这方面的知识也是各种资料,没有太多的实践的经历,这里就不摘抄了,推荐大家去看此书或其它相关资料了解这方面的知识。 下面进入本篇的主题,缓存我们再熟悉不过了,不仅体现空间换时间的体现,也能节省不少的资源. 阅读全文
posted @ 2012-08-29 15:48 for certain 阅读(3106) 评论(0) 推荐(2) 编辑
摘要: 所谓加密就是将数据进行不规则化以保证源数据机密性的机制或进行签名以保证数据完整性。特别是如今电子商务的火热和人们对隐私的注重,加密对于变通的程序员来说,也是必须考虑的问题了。如何不规则化数据呢,我们自己可能就会提出很多种方案,也就是一种加密算法,至于安全性可能就跟本身的设计有关了;而现如今就有很多公开的算法如DES、RSA、MD5等等,虽然算法是公开的,但是他们根据密钥来加密,想要解密它们就需要解密的密钥甚至有些是不能得到源数据的。那么.net提供哪些加密的方式呢?我们常用的安全吗 .net程序员最常用的肯定就是FormsAuthentication.HashPasswordForStori. 阅读全文
posted @ 2012-08-12 16:45 for certain 阅读(3164) 评论(6) 推荐(6) 编辑
摘要: 作为程序开发人员,都梦想着有朝一日,能构建一个能稳定、扩展性强应用程序。当看到《构建高性能的web站点》时,感觉这本书可以帮助我们去接近这个目标:他实用性很强,从网站各个方面来讲,从网络、服务器软件、脚本语言以及到缓存、负载均衡、数据库的优化、文件共享、性能监控等都有涉及,可以让没有实际去体验这一个个场景的开发人员获得这样的经验,增长知识。等待什么 首先让我们看一下从输入一个url到页面呈现到我们眼前,我们在等待什么? 从一个网址输入,不只是页面的一个请求,还有图片、样式、脚本等这些文件请求,每个请求又会经历一些相同的历程:数据在网络的传输(传出和传入)、服务器对请求的处理返回数据、还有本地. 阅读全文
posted @ 2012-08-07 15:54 for certain 阅读(2159) 评论(4) 推荐(0) 编辑
摘要: 函数function在js是非常重要的存在,我们平常所讨论的js的”面向对象”,都是在它的基础上的,可以说我们应该相当的了解,它存了太多独特的地方了。每个函数都是function类型的实例首先让我们来理解这句话:每个函数其实是function类型的实例。也就是说我们声明的函数都是对象,有自己的属性和方法,函数名不过是指向该对象的一个指针。看下面这个例子: function myfuc(arg) { alert(arg); } var anfuc = myfuc; myfuc = null; anfuc(1); // 报错,还是弹出1??结果是弹出1,... 阅读全文
posted @ 2012-06-16 11:58 for certain 阅读(1848) 评论(2) 推荐(0) 编辑
摘要: javascript做为一个脚本语言,像它的前辈一样提供了操作数据值的操作符,如算术操作符、位操作符、关系操作符和相等操作符。你可以按照其它常用语言如C、C#等一样来使用js的操作符,但是远不如此,它的使用对象不仅限于特定类型,可以对任何类型使用,同时在处理时有着很大的不同。算术操作符 对数字类型执行++、—、+、-操作不用多说了,js可以对其它任何类型执行这个操作,让我们看几个实例:先声明一些变量,这些变量是这篇文章中的例子都会用到的: var a = 123; var b = "123"; var c = "123d"; var e = t... 阅读全文
posted @ 2012-04-21 17:36 for certain 阅读(1769) 评论(2) 推荐(1) 编辑