https://developer.yahoo.com/performance/rules.html?guccounter=1#csslink

  • Content
  • Server
  • Cookie
  • CSS
  • JavaScript
  • Images
  • Mobile

原文从七个方面总结网站性能提升。

本篇总结Cookie、CSS、Mobile方面。

使用HTTP cookie的原因有多种,例如身份验证和个性化

服务器和浏览器通过HTTP headers交换有关cookie的信息

尽可能减小cookie的大小,有助于减少对用户响应时间的影响

确保使用无Cookie的请求来请求静态组件

创建一个子域并在其中托管所有静态组件

一些代理可能拒绝缓存带cookie的请求得到的组件

CSS

Put Stylesheets at Top 样式文件放到顶部

将样式表放到HEAD可以让页面逐步呈现

Avoid CSS Expressions 避免使用CSS表达式

css表达式可以动态的设置css属性

阅读全文 »

https://developer.yahoo.com/performance/rules.html?guccounter=1#csslink

  • Content
  • Server
  • Cookie
  • CSS
  • JavaScript
  • Images
  • Mobile

原文从七个方面总结网站性能提升。

本篇总结Server方面。

Use a Content Delivery Network (CDN)使用内容分发网络

用户到服务器的距离会影响响应时间,比如当我们访问美国的服务器和中国的服务器
用户80%-90%的响应时间用来下载页面上的内容
为了加速这个:

  • 不要轻易尝试将web应用改为分布式架构

  • 可以尝试使用CDN,将静态内容分散(切换到CDN是个相对简单的代码变化,将极大地提高网站速度

一个内容分发网络是分布在多地的服务器集合,可以更有效地向用户提供内容

Add Expires or Cache-Control Header添加Expires或Cache-Control头

  1. 对于静态组件,设置一个长期的Expires头,表示该请求“永不过期”
  2. 对于动态组件,使用适当的Cache-Control头,来帮助浏览器有条件的进行请求

网页被首次访问时需要大量的HTTP请求,通过使用Expires头,可以使请求过的组件可缓存,避免后续访问时的重复请求。也就是说,这个操作是对后续的请求有影响

对于性能的提升,取决你对这个网站的访问频率

Web服务器在HTTP响应中添加的Expires头告诉客户端可以将组件缓存多长时间

如果使用了长期的Expires头,当组件发生改变时,组件名应该改变(构建阶段处理:将组件版本号加到组件名中

Gzip Components压缩组件

通过压缩HTTP响应来减少响应时间

阅读全文 »

https://developer.yahoo.com/performance/rules.html?guccounter=1#csslink

  • Content
  • Server
  • Cookie
  • CSS
  • JavaScript
  • Images
  • Mobile

原文从七个方面总结网站性能提升。

本篇总结Content方面。

Make Fewer HTTP Requests 减少HTTP请求

减少页面的组件数量,可以减少HTTP请求数量。

减少页面组件的方法:

  • 精简页面设计

  • 不简化设计的情况下:

    • 文件组合(js文件放到一个里面,css文件放到一个里面)
  • CSS Sprites:背景图片合并成一张,利用css属性设置各个部分到相对应的页面

  • 将内联图片放到css文件中( Combining inline images into your cached stylesheets is a way to reduce HTTP requests and avoid increasing the size of your pages ?How ? ( Todo: find demo

Reduce DNS Lookups 减少DNS查询

减少网站的主机名(hostnames),可以减少DNS查询次数

但是减少网站主机名会减少页面的并发下载量

Trade-off:Avoiding DNS lookups cuts response times, but reducing parallel downloads may increase response times.

Guide:Split components across at least two but no more than four hostnames.

Avoid Redirects 避免网站重定向

最经常发生的重定向:应该加/的地方没有加/

重定向可以用来从旧网站跳转到新网站

重定向也可以用来连接网站的不同部分、根据特定情况让用户跳转

解决办法:

  • 如果两个网站在同一个服务器,使用 Alias and mod_rewrite

  • 如果是网站换了个新域名,创建一个CNAME (a DNS record that creates an alias pointing from one domain name to another),结合Alias or mod_rewrite

Make Ajax Cacheable 缓存Ajax请求

异步不等于即时

优化异步请求:

  • 缓存Ajax请求
阅读全文 »

surface上写博客,完事之后各端同步测试。

最近一次提交的信息不太对,已经push到远端。

修改步骤:

  1. 输入命令,会进入编辑器

    1
    git commit --amend
  2. 修改commit信息,退出编辑器

  3. 强制推送

    1
    git push -f

修改后:

注意到:commit号改变了

0%