如何优化网站性能?针对前后端代码框架优化
1、 前端优化
首先,让我们谈谈前端优化。80%的用户访问网页的等待时间发生在浏览器前端,尤其是页面和页面中各种元素(图片、CSS、JavaScript、flash…)的下载。因此,在许多情况下,与花费大量时间在困难和复杂的程序改进上相比,前端优化往往可以事半功倍。
对于首次访问您的网站但尚未将您的网站内容缓存在浏览器缓存中的用户,我们可以执行以下操作:
1) 减少页面访问生成的HTTP连接数
对于首次访问您的网站的用户,页面生成的HTTP连接数是影响性能的关键瓶颈。
对策:
-保持页面设计尽可能简单,尽量减少图片的使用,并通过放弃一些不必要的页面效果来减少JavaScript的使用。
-使用一些优化技术,如利用图片的背景位移来减少图片数量;影像地图技术;使用inlineimages将CSS图像捆绑到网页中。
-尝试合并JS和CSS文件以减少独立文件的数量。
2) 将CSS放在页面顶部,将JS文件放在页面底部
CSS引用应放在HTML的标题中,JS文件引用应尽可能放在页面底部标记的后面。其主要思想是尽快显示核心页面内容。但是需要注意的是,对于一些使用了大量JS的页面,底部的一些JS文件可能会导致一些不可预知的问题,可以根据实际情况适当使用。
具体来说,一些JavaScript压缩工具用于压缩JS脚本、删除空白字符和注释以及最小化变量名。基于gzip压缩,JS内容的压缩可以将性能再提高5%。
3) 尽量减少使用外部脚本并减少DNS查询时间
对于网站的频繁用户,主要的优化思想是很大限度地利用用户浏览器的缓存,以减少服务器的开销。
4) 在标题中添加过期时间(expiresheader)
向标头中的静态内容添加一个较长的过期时间,以便用户将来只能读取缓存中的文件,而无需与服务器进行任何交互。然而,这样做也存在一些问题。更新图像、CSS和JS文件时,如果用户不刷新浏览器,则无法获得更新。这样,当我们修改图像、CSS和JS文件时,我们必须重命名它们,以确保用户能够访问有价值的内容。这可能会给开发带来很多麻烦,因为这些文件可能会被站点中的许多文件引用。Flickr提出的处理方法是通过URL重写使不同版本号的URL实际指向同一个文件,这是一种聪明的方法,因为URL级别的操作效率很高,可以为开发过程提供很多便利。
要了解原因,您必须了解浏览器在访问URL时的工作方式:
A.首次访问URL时,用户从服务器段获取页面内容,将相关文件(图像、CSS、JS…)放入缓存,并在文件头中保留过期时间、LastModified、ETag和其他相关信息。
B当用户重复访问URL时,浏览器首先检查缓存中是否存在同名文件。如果是,请检查文件的过期时间;如果文件未过期,则直接从缓存读取该文件,并且不再访问服务器。
C如果缓存中文件的过期时间不存在或已超过,浏览器将访问服务器以获取文件的标题信息,检查LastModified、etags和其他信息。如果发现自上次访问以来本地缓存中的文件未被修改,则将使用本地缓存中的文件;
根据我的经验,如果可能的话,试着遵循这个原则为静态文件增加过期时间,从而大大减少用户对服务器资源的重复访问。
5) CSS和JS文件在单独的外部文件中引用
将CSS和JS文件放在单独的文件中,以便它们单独缓存,并且在访问其他页面时可以直接从浏览器的缓存中读取。有些网站的主页可能是例外。这些主页的自浏览量可能不大,但这是用户访问网站的***印象,也是引导用户访问其他页面的起点。这些页面本身也可能使用大量Ajax本地刷新和技术。此时,CSS和JS文件可以直接写入页面中。
在ie中,包含重复的JS脚本将导致浏览器的缓存不被使用。仔细检查你的程序。删除重复的引用脚本应该不难。
除了标头中的人工重定向之外,网页重定向通常是无意中发生的,重定向的内容不会使用浏览器的缓存。例如,当用户正在访问时,服务器将转到/通过301,后跟“/”。如果服务器配置不好,也会给服务器带来额外的负担。通过配置Apache的别名或使用Mod_uurewrite模块和其他方法,可以尽可能避免不必要的重定向。
还有其他一些,例如使用CDN分发机制、避免CSS表达式、避免ETag等。因为它们不常用,所以这里不再重复。
经过以上优化后,可以尝试用Yslow测试网页的性能得分,一般可以达到70分以上。
当然,除了对浏览器前端和静态内容进行优化外,还对程序脚本、服务器、数据库和加载进行了优化。这些更深层次的优化方法对技术有更高的要求。本文的后半部分将重点讨论后端优化。
如何优化网站性能?针对前后端代码框架优化
2、 后端优化
前端优化可以尽可能避免对服务器和带宽资源造成不必要的浪费,但随着网站访问量的增加,仅靠前端优化并不能解决所有问题。后端软件处理并行请求的能力、程序运行效率、硬件性能和系统可扩展性将成为影响网站性能和稳定性的关键瓶颈。为了优化系统和程序的性能,我们可以从以下几个方面入手:
1) Apache、MySQL等软件的配置优化
虽然安装后Apache和MySQL等软件使用的默认设置足以让您的网站运行,但您仍然可以通过调整MySQL和Apache的一些系统参数来追求更高的效率和稳定性。这个领域有很多专业的文章和论坛(例如:),为了掌握它,还需要进行深入的研究和实践,这里不再讨论。
Apache是一个功能齐全但相对较大的web服务器。它的资源消耗基本上与同时运行的进程数成正比。它消耗大量服务器内存,通常在处理并行任务时效率很高。在某些情况下,我们可以使用轻量级Web服务器托管静态图像、样式表和JavaScript文件。只有这样,才能大大提高静态文件的处理速度,大大减少内存占用。我使用的web服务器是来自俄罗斯的nginx。其他选项包括lighttpd和thttpd。
当前端服务器不足以应付用户访问时,通过前端机实现web访问的负载均衡是最快、最可行的方案。通过apachemod_u2;Proxy可以轻松实现基于反向代理的负载平衡。建议使用nginx作为代理服务器,这比Apache更快。
2) 应用缓存技术提高数据库效率、文件缓存和分布式缓存
3) 检查服务器的运行状态以查找影响性能的瓶颈
系统优化没有一劳永逸的方法。我们需要检测服务器的运行状态,及时发现影响性能的瓶颈和可能存在的潜在问题,因为网站的性能总是取决于桶中的短板。可以编写一些脚本来检查Web服务的操作,一些开源软件也提供了良好的功能
一些技巧和技巧可以帮助你克服目前的困难,但是如果你想让网站具备应对大规模访问的能力,你需要从系统架构上做一个周密的规划。幸运的是,许多前辈无私地分享了他们的架构。
声明:OurSeo登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,请读者仅作参考,并请自行核实相关内容。如有侵权请联系我们,会及时删除,如若转载请注明出处。