除了直接的使用cdn加速服务外,您也可以使用:替换或者提高压缩算法和策略
如果你有特别的客户端,可以考虑使用自定义的更高压缩比的压缩方式,这个做手机应用的童鞋或许接触过,和十年前大家压缩mp3以及做软件压缩包一样,使用自己软件算法和策略替代市面上已有的算法和策略。如果没有特别的客户端,不妨对图片和视频使用更好的压缩格式,比如webp和webm,以及适当情况下的gif替代png等。
其他层面的方法:
服务器性能:
说到服务器性能,可能多数人会停留在几核几g几百g这种概念上,但是对于网站服务器,关注的应该是单机/vps的数字运算能力和io读写能力,如果不是单机服务器,那么请关注自己实际能使用的资源数量,尤其是高峰时刻够用且有余力!
机房带宽资源:
带宽资源或许是除了高端存储设备外,价格最贵的资源之一了。所以,评估带宽是否满足你的站点,是特别重要的事情。一般来说小站点,1~2m的带宽绝对够用。如果不知道你的机器的带宽能力,不妨登录机器后台观察流量图峰值,或者机器安装speedtest-cli,来进行数据收集。
服务器的上行带宽,即是我们常说的网站带宽,一般而言,此数值越大,提供的访问能力就越强。
服务器软件性能:
“尺有所短,寸有所长”,软件也是一样,小站点,资源有限的情况下:
如果你以前使用apache,且没有使用一些三方模块,或者不需要使用apache软件套装里的高级功能,或者没有软件必须依赖apache,以及三方模块能在nginx中找到替代的,可以考虑替换为nginx。
如果你的程序允许实现数据库缓存/站点内容缓存,但是没有使用缓存的,请开启缓存功能;如果你的程序使用了文件缓存,在内存资源有富裕的情况下,请使用内存缓存(自己考虑缓存策略);如果你的程序原来的运行环境执行速度不够快,那么请考虑升级或运行环境,诸如php5.2-php.5.6+,或者php5.6-hhvm3.x,asp/php-nodejs;如果你的程序中多数功能你用不到,考虑使用更轻便的小程序;如果你启用了缓存,且数据库(关系数据库)读取热数据频率高于冷数据,且访问量不是特别大,不需要考虑数据库效率,否则需要考虑数据库进行分库分表和建立适当的索引,以提高数据库吞吐能力。
根据自己情况适当调整nginx/mysql/redis/memcache等软件的数据分块大小。
优化程序关键逻辑的流程,尽可能让程序始终遵循最短路径结束任务。
尽可能让tcp链接重用,或者适当调整持久链接的时间和数量(keep-alive),以及考虑使用spdy、防火墙/服务器代理软件/程序对访客限制流量以及过滤或者禁止能力范围内的异常流量。
dns查询速度:
dns对于站点首次打开速度至关重要,所以请尽可能选择靠谱的dns提供商来解决dns查询问题。
除此之外,对于webkit支持dns预缓存的浏览器,可以在页面头部尽少和尽合理的添加要缓存的dns,以加快页面展示速度。
替换或者提高压缩算法和策略:
如果你有特别的客户端,可以考虑使用自定义的更高压缩比的压缩方式,这个做手机应用的童鞋或许接触过,和十年前大家压缩mp3以及做软件压缩包一样,使用自己软件算法和策略替代市面上已有的算法和策略。如果没有特别的客户端,不妨对图片和视频使用更好的压缩格式,比如webp和webm,以及适当情况下的gif替代png等。
页面提供资源数量:
尽可能减少同一时间的资源请求数量:
1.对于静态样式和脚本,使用合并策略。针对单页面程序,你可以将所有样式或者脚本都合并为一个单独的文件。但是针对多页面,以及带有皮肤策略的站点,则考虑抽象基础的base内容和额外的内容,并通过前后端脚本进行策略加载。
2.对于图片和视频资源,在交互允许的情况下,使用延时加载,跨屏预加载一定数量,来取代页面文档加载完成后就加载全部的策略。
对不同浏览器使用不同的脚本:
差异对待浏览器,对古老浏览器不使用一些功能,以及差异对待浏览器使用的基础脚本库。如果你使用下一节提到的js加载器,那么这个很容易做到。
页面增量更新:
如果你的内容支持异步增量更新,那么使用接口更新增量内容的模式,来替换打开新页面的模式。
客户端缓存:
简单的说,尽可能给所有资源使用最长时间的缓存,对于不支持200cache的客户端提供304modified缓存(前者不需要额外http请求)。
客户端本地缓存:
对于变化不大的站点,配合脚本,对支持使用本地缓存的客户端进行适当的数据缓存。
页面资源加载时机:
将页面主要样式尽可能放在文档顶部、将三方不可合并脚本尽可能放置页面底部、将页面inline脚本尽可能替换为配置内容。
用户终端某时刻性能:
受限于客户端宿主机性能以宿主机网络环境。和最开始提到的服务器性能一样,cpu时间片被其他程序占用时,或者硬件古老,以及网络被其他程序占用的时候,会带来浏览的不畅。
如果你对网站的一般访问速度有信心(通过收集到的数据的反馈),且网站属于内容展示类的,可以在适当的位置加诸如以下的提示(程序打底提示):
页面加载过慢,不妨检查网络环境是否有其他软件占用(下载工具/在线视频),并刷新页面。资源加载失败,请刷新重试。
待页面加载完成,干掉以上提示。但是请权衡此内容的存储位置和脚本执行时机,考虑搜索引擎将提示和内容都缓存的情况。
用户终端浏览器性能:
如果你的用户使用者古老的浏览器,软件性能成为页面数据下载和渲染瓶颈,那么不妨给其一个提示,或者强制其使用新版本的浏览器进行访问:
请更新浏览器以获得更加体验。
本站仅支持新的浏览器:a,b,c。
为了您的访问速度和安全考虑,我们推荐您安装:x,y,z。
用户直观感受:极致畅快体验!!!
原文标题:图片网站如何加速?,如若转载,请注明出处:https://www.saibowen.com/tougao/21958.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。