随着互联网、信息技术、移动支付等技术的飞速发展,电子商务行业也在快速发展,一时间涌现了大量的各种各样的电子商务网站,包括B2B、B2C以及C2C的。这些网站每天都有成千上万的人访问,包含商品浏览、购买、比价等,如此高的访问量,必须要优化和调整网站的性能才能保证网站的稳定运行,给客户带来良好的购物与访问体验。优化电子商务网站的性能主要可以通过硬件升级、重构构建、页面优化、数据库优化等技术实现,通过这些技术优化后的电子商务网站可以最大限度提高系统的高并发执行能力和运行效率,从而为更多的在线用户服务。
2系统架构
多省汇食材网”主要是一个食材价格比对、食材在线销售的网站,每天自动收集各大市场各种食材的价格,为用户提供食材比价的基础,同时联合供应商提供食材的在线购买和配送服务。该网站每天数据录人量和访问量巨大,目前的平台构架和技术很难支撑现有的业务访问量,因此,需要对其进行性能优化。本次优化方案主要从页面优化、程序优化、数据库优化三个方面进行优化升级。
页面优化:主要从页面元素的布局合理性和HITP请求数等几方面进行考虑。
程序优化:主要在原有系统中引入数据缓存技术和静态页面生成技术,并同时配合使用了AJAX技术对程序进行优化;
数据库优化:主要在数据库的优化中对SQL语句和表进行优化。
3系统优化的实现
3.1页面优化
3.1.1减少HTTP请求次数
Web页面包括了各种页面元素,例如商品图像、页面样式表、JS脚本和F1ash动画等,当用户访问页面时,浏览器需要将这些元素下载到本地进行解析展示。当HTTP访问次数过多,服务器性能和网络带宽都会被下载任务所占用因此,需要减少HTTP的请求次数。这只是页面优化的开始,根据调査得知电子商务网站的访问量中有40%-60%属于首次访问,所以加快首次访问的速度是提升用户购物体验的关键。
3.1.2合理设置页面过期时间
为了提升用户的购物体验、吸引顾客的目光,电子商务网站需要将网页制作得丰富多彩,增加各种页面元素,当客户端第一次访问时,不得不面临大量的HITP请求,如果没有设置页面过期时间,当用户下次访问时,又得再次提交重复的HITP请求,设置了页面过期时间后客户端就会将这些资源缓存下来,当客户下次访问时客户端就可以使用本地缓存的资源来展示页面,从而减少HTTP请求的次数和大小使得网页加载速度变快。但是页面的过期时间设置过大,客户端会一直缓存之前的资源,当用户访问网站时不再继续下载新的资源文件,页面将会过时甚至无法显示,因此,设置合理的页面过期时间很重要。
3.1.3压缩页面元素
页面上的很多元素基本都是图片、样式和JS,这些文件的压缩比都很大,经过压缩可以减少体积、加快网络传输时间,客户端在收到压缩后的文件后再进行解压获得原来的文件,将负载压力从服务器端转移到客户端,从而提高服务器的响应时间。HTTP/1.1的标准中Web客户端的HTP请求中可以通过设置Accept-Encoding头来表明支持的压缩类型。
客户端浏览器在访问页面时根据页面头设置的文件类型来决定是否压缩。如果需要压缩,则将HIML文件、CSS文件和JS文件、图片文件等进行压缩,通过压缩HTTP响应内容可减少页面响应时间。
3.1.4合理放置样式表和脚本文件
客户在访问一个页面时首先看到的是页面的效果,然后才会移动鼠标触发页面的特效,根据这一用户习惯,可以将CSS样式表放在HTML的头部,将JS引入文件放在页面的底部,这是因为浏览器解析HIML文件采用的是顺序执行方式,这样由于CSS文件以及样式表在头部可以让页面的布局和展示很快展示在用户眼前,提高客户访问页面的友好度、提升购物体验。将JS文件放在底部是因为当所有页面都加载完毕后才开始加载JS特效,当用户点击特效时JS已加载完毕,这样可以利用客户的时间差来增加页面加载的时间。
3.1.5把Javascript和CSS放到外部文件中
电商网站中的页面数量很多,如果每个页面中都写入JS和CSS文件必将导致HIML文件过大,因此,可将Javascript和CSS放入几个单独的外部文件封装起来,然后在页面中导人,这样做的明显好处有两个:第一,可以方便代码的管理、维护,如果将Javascript、CSS和页面代码起写人页面中,那页面代码将会相当宏大并且杂乱,维护起来将很繁琐艰难;第二,使用外部文件会加快页面显示速度,因为外部文件会被浏览器缓存,这在多次访问时可大大加快访问速度。
3.2程序优化
2.1页面静态化
动态网页需要执行拼接等操作,耗时较大。而客户访问最多的就是商品详细页面,每一种商品的详细页面在生成过后不经过人为操作是不会发生变化的,因此,可以将商品详情页面进行静态化以加快服务器的响应时间。对于商品详情页在添加完商品保存后将该页面进行静态化,对于其他页面当客户第一次访问该页面时,后台服务程序首先检査该页面是否有静态页面,如果有直接返回,如果没有则生成静态页面,并更改该页面的访问路径,当下次访问时直接返回该页面的静态页面。
2.2AJAK提交
在价格公告模块中,当用户选择一个商品后,只需用选择商品价格时间查找价格,点击查找后整个商品详情页面不会改变,发生改变的只有商品的价格属性,所以不需要重新请求并刷新整个页面,可以使用AJAX提交局部刷新请求,减少网络访问次数,提高页面的流畅度,价格数据更新快速,用户体验更加快捷流畅.
3数据库优化
3.1SQ工L语句的优化
本系统数据库使用MYSQL5.0,对SQL语句进行的优化将基于此数据库来展开。在本系统中优化SQ工L语句的步骤是:首先运用showstatus命令了解各种SQL的执行频率然后定位到执行效率较低的SQL语句,通过explain命令来分析低效的SQL的执行计划,然后根据出现的问题采取相应的优化方法。
(1)使用索引:增加索引可以减少检索的时间,可以在经常查询的字段上增加索引,但是增加了索引之后对于数据的修改性能会有影响,这是增加索引需要额外注意的事项。在本系统中在用户的用户名和密码与商品的名称上增加索引,以提高用户登录的速度和查找商品的速度。
(2)使用analyze和checktable1命令定期分析和检查表。
(3)定期优化表,电商系统中的商品表和商品推荐表等在经过了很多次的访问以及修改后存在很多碎片,此时使用optimizetable命令来对数据表中的空间碎片进行整理与合并,以减少空间的浪费和提高操作的效率。
(4)优化SQL部分语句,导入大批量数据时,使用loaddatainfilei命令可有效提高导入效率,使用索引来满足orderby子句将不需要额外的排序,对于嵌套査询,有些情况下用JON来代替子査询将会得到更高的效率。
3.3.2通过拆分表提高访问效率
在本销售系统中,有一模块叫“商品推荐模块”,本模块主要是当客户查看或者购买一个商品后系统需要关联类似的商品,在用户下次登录时进行推荐。
由于客户每次点击一种商品都会进行关联,如果一个用户每天点击10个商品,每天有500个客户,那么一个月表里将会有15万条记录,如果每个用户登录时都在这个表里进行关联商品的话,那将会出现速度缓慢的情况。这里将采用分表的方法来提高査询效率,将一个月按时间分成三部分,记录分别存放在三个表里,如1711表示2017年1月第部分的记录,由于用户下次再登录网站购买商品多为10天以内的用户,大部分用户都会在最近表里命中,故这样可以有效提高记录的命中率,提高数据査询的性能。
系统性能測试
4.1用AB进行性能测试
首先,利用AB对优化后的网站进行性能考察,运行命令为ab-c50-n1000http://localhost/(虚拟50个用户并发执行1000次访问)。
测试结果来看,经过优化后的电子商务网站的服务器负载能力有了一定的提升,由原来每秒只能响应62.11个用户请求提高到了75.21个,并且50%的用户请求在656ms内得到了响应。
4.2用Webload进行性能测试
用Webload对整个网站进行测试,首先启录制操作脚本,然后通过脚本建立压力測试模板,接着进行压力测试,在“多省汇食材网”的压力测试中,模拟现实中的用户对页面进行的一系列操作,压力測试运行时间为8分钟。通过测试比较,将关键参数取出来对比。
可以看出,在8分钟的压力测试中,同样的并发访问量,优化后平均每个页面返回时间少了0.321秒,在480秒内优化后可以多返回331个页面,平均每秒多返回0.872个页面,点击数量也每秒增多了5.008次。
电子商务网站制作系统的优化是一个动态化的工作,本文主要从前台页面,数据库等方面对网站进行了优化,并做了测试,达到了预期的目标,此外时优化有很多方法,如建立多服务器群组进行负载均衡、CDN(ContentDeliveryNetwork,内容分发网络)的应用等,将会在更进一步的优化工作中得到应用。
- 上一篇:郑州公司网站制作动态方法与技巧
- 下一篇:郑州公司网站建设的基本流程概念