Performance 一般网页加载速度和性能最佳实践

Performance 一般网页加载速度和性能最佳实践,performance,Performance,提高页面加载速度的一般策略和最佳实践有哪些(并非特定于LAMP、.NET、Ruby、mySql等) 我正在寻找有关缓存、HTTP头、外部文件缩小(CSS、JS)等的提示 还有像谷歌和雅虎这样的好工具 最终目标是一个“终极资源”维基风格的“不可忘记的事情”清单(由这里的所有向导主持和更新)。因此,人们不必无休止地搜索关于这个主题的过时博客帖子 我希望“主观”的MOD对我来说容易些,我知道这有点不确定。我以前在这里被问过。而且这个材料和这个领域重叠太多了。但并没有一个核心的“维基”问题真正涉及到这一

提高页面加载速度的一般策略和最佳实践有哪些(并非特定于LAMP、.NET、Ruby、mySql等)

我正在寻找有关缓存、HTTP头、外部文件缩小(CSS、JS)等的提示

还有像谷歌和雅虎这样的好工具

最终目标是一个“终极资源”维基风格的“不可忘记的事情”清单(由这里的所有向导主持和更新)。因此,人们不必无休止地搜索关于这个主题的过时博客帖子

我希望“主观”的MOD对我来说容易些,我知道这有点不确定。我以前在这里被问过。而且这个材料和这个领域重叠太多了。但并没有一个核心的“维基”问题真正涉及到这一点,所以我希望开始一个。我一直都在说这样的事情!谢谢

  • 页面内容的缓存
  • 在页面底部加载javascript
  • 缩小css(和javascript)
  • Css和javascript应该在它们自己的[外部]文件中
  • 如果可能,将所有js或css文件合并为每种类型中的一种(保存服务器请求)
  • 使用谷歌的和加载器(因为它可能已经缓存在一些计算机上)
  • Gzip压缩
  • 图像的大小应与标记中的宽度和高度相同(避免调整大小)
  • 适当时使用图像精灵(但不要过度使用)
  • 正确使用HTML元素,即对标题使用
    标记
  • 避免使用或使用现在更流行的方法(ul)
  • 尽可能多地关注javascript选择器,即$('h1.title')比$('h1.title')快得多

使动态内容更加静态

如果您可以将公共页面呈现为静态内容,您将帮助代理、缓存、反向代理,以及web应用程序加速器和DDOS防范基础设施等

这可以通过几种方式实现。当然,通过处理缓存头,但您甚至可以考虑使用ajax查询来提供动态内容的真正的静态页面,当然也可以混合使用这两种解决方案,在大多数浏览器和反向代理中,使用缓存头使主页静态数小时

将ajax解决方案作为一个主要缺点的静态应用程序,SEO,机器人程序将看不到您的动态内容。您需要一种向机器人提供这些动态数据的方法(以及一种处理用户从搜索引擎url访问这些数据的方法,大地狱)。因此,反模式是将真正重要的SEO数据放在静态页面中,而不是放在ajax动态内容中,并将ajax用户交互限制在用户体验中。但是,复合页面上的用户体验可能比搜索egine机器人体验更具动态性。我的意思是,机器人每小时更换一次最新版本,用户每分钟更换一次最新版本

您还需要防止过早使用会话cookie。大多数代理缓存将避免缓存任何包含cookie的HTTP请求(这是HTTP的官方规范)。这个问题通常是应用程序在所有页面上都有登录表单,并且在登录表单的帖子上需要一个现有会话。这可以通过单独的登录页面或登录帖子上的高级重定向来修复。反向代理缓存中的cookie处理也可以在现代代理缓存(如Varnish)中处理,并带有一些配置设置

编辑:反向代理页面的一个高级用法可能非常有用:ESI,例如使用varnish ESI。您可以添加ESI反向代理将识别的html呈现标记。这些识别区域中的每一个都可以有不同的TTL生存时间(比如说,整个页面为1天,最新的新区块为10分钟,聊天区块为0)。反向代理将在is自己的缓存中或向您的后端发出请求,以填充这些块


由于web存在,处理代理和缓存一直是欺骗用户的主要技术,认为web很快。

使用适当的标记如何提高加载速度?而“div-itis”只是为了更快地加载和呈现而减小DOM树的大小吗?正确使用页面元素标记和焦点jquery选择器可以提高性能。(我添加了一个新的观点)如果一切都是一个div并且使用$('div.title'),那么这真的没有什么好处。他的意思是CSS选择器应该尽可能具体(使用jQuery)。然而,CSS并不总是如此。深度CSS选择器可以减慢样式的渲染速度。例如,“html body.my div ul li h1”如果写为“.my div h1”一些有趣的点,则渲染速度会更快。的确,提供一个平面页面比点击数据库生成所有内容要快。特别是如果你不提供,那么你和最终浏览器之间的反向代理缓存链会为你提供很长一段时间。