长春小程序开发公司智网科技:专注微信开发,长春小程序开发,长春微信小程序定制开发等业务!
手机版手机网站二维码 微信版 微信二维码 业务咨询电话:132-5181-1600

图片网站如何加速?

发表于:18-07-25 00:00 阅读()

除了直接的使用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->hhvm 3.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加载器,那么这个很容易做到。

页面增量更新:

如果你的内容支持异步增量更新,那么使用接口更新增量内容的模式,来替换打开新页面的模式。

客户端缓存:

简单的说,尽可能给所有资源使用最长时间的缓存,对于不支持200 cache的客户端提供304 Modified缓存(前者不需要额外HTTP请求)。

客户端本地缓存:

对于变化不大的站点,配合脚本,对支持使用本地缓存的客户端进行适当的数据缓存。

页面资源加载时机:

将页面主要样式尽可能放在文档顶部、将三方不可合并脚本尽可能放置页面底部、将页面inline脚本尽可能替换为配置内容。

用户终端某时刻性能:

受限于客户端宿主机性能以宿主机网络环境。和最开始提到的服务器性能一样,CPU时间片被其他程序占用时,或者硬件古老,以及网络被其他程序占用的时候,会带来浏览的不畅。

如果你对网站的一般访问速度有信心(通过收集到的数据的反馈),且网站属于内容展示类的,可以在适当的位置加诸如以下的提示(程序打底提示):

页面加载过慢,不妨检查网络环境是否有其他软件占用(下载工具/在线视频),并刷新页面。资源加载失败,请刷新重试。

待页面加载完成,干掉以上提示。但是请权衡此内容的存储位置和脚本执行时机,考虑搜索引擎将提示和内容都缓存的情况。

用户终端浏览器性能:

如果你的用户使用者古老的浏览器,软件性能成为页面数据下载和渲染瓶颈,那么不妨给其一个提示,或者强制其使用新版本的浏览器进行访问:

请更新浏览器以获得更加体验。

本站仅支持新的浏览器:A,B,C。

为了您的访问速度和安全考虑,我们推荐您安装:X,Y,Z。

用户直观感受:极致畅快体验!!!

 

 




top