网站加载图片慢 网页响应慢 网页优化

前言:今天小萌新想弄一个网站,买了一个1G的服务器搭建一个小型网站。可是图片不过才几张图片,加载的是真的慢…,作为一个前端,这不能忍。所以记录一下老生常谈的网页优化的问题。

这段时间整理自己的笔记,发现不够详细,以前写的东西也不够系统,所以有时间来重新详细的整理一下。本来图片加载慢就属于网页优化的问题,所以这里总体来说一下关于优化的那些事儿

Ⅰ、图片优化
  1. 优化图片
    可以使用简单的方式直接压缩图片,压缩程度就看各自的需求了,https://tinypng.com/,网上自行搜索还有很多类似的网站。
  2. 优化CSS Sprite
    在Sprite图片中横向排列一般都比纵向排列的最终文件小组合Sprite图片中的相似颜色可以保持低色数,最理想的是256色以下PNG8格式“对移动端友好”,不要在Sprite图片中留下太大的空隙。虽然不会在很大程度上影响图片文件的大小,但这样做可以节省用户代理把图片解压成像素映射时消耗的内存。100×100的图片是1万个像素,而1000×1000的图片就是100万个像素了。
    不过这也有一定的缺点:在长期开发多人合作的项目中,会不好维护这些sprites,每次对icon做修改,都得相应的改动css里background-position的值,相当繁琐.
  3. 不要用HTML缩放图片
<img width="100" height="100" src="mycat.jpg" alt="My Cat" />
不要因为在HTML中可以设置宽高而使用本不需要的大图。如果需要那么图片本身(mycat.jpg)应该是100x100px的,而不是去缩小500x500px的图片。
  1. 用小的可缓存的favicon.ico(P.S. 收藏夹图标)
     favicon.ico是放在服务器根目录的图片,它会带来一堆麻烦,因为即便你不管它,浏览器也会自动请求它,所以最好不要给一个404 Not Found响应。而且只要在同一个服务器上,每次请求它时都会发送cookie,此外这个图片还会干扰下载顺序,例如在IE中,当你在onload中请求额外组件时,将会先下载favicon。
    所以为了缓解favicon.ico的缺点,应该确保:足够小,最好在1K以下设置合适的有效期HTTP头(以后如果想换的话就不能重命名了),把有效期设置为几个月后一般比较安全,可以通过检查当前favicon.ico的最后修改日期来确保变更能让浏览器知道
  2. 使用云连接,把图片存在服务器或者云
Ⅱ、减少http请求,杜绝404请求

80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样式表,脚本,Flash等等。减少组件数必然能够减少页面提交的HTTP请求数。这是让页面更快的关键。

减少页面组件数的一种方式是简化页面设计。但有没有一种方法可以在构建复杂的页面同时加快响应时间呢?嗯,确实有鱼和熊掌兼得的办法。

合并文件是通过把所有脚本放在一个文件中的方式来减少请求数的,当然,也可以合并所有的CSS。如果各个页面的脚本和样式不一样的话,合并文件就是一项比较麻烦的工作了,但把这个作为站点发布过程的一部分确实可以提高响应时间。

CSS Sprites是减少图片请求数量的首选方式。把背景图片都整合到一张图片中,然后用CSS的background-image和background-position属性来定位要显示的部分。

图像映射可以把多张图片合并成单张图片,总大小是一样的,但减少了请求数并加速了页面加载。图片映射只有在图像在页面中连续的时候才有用,比如导航条。给image map设置坐标的过程既无聊又容易出错,用image map来做导航也不容易,所以不推荐用这种方式。

行内图片(Base64编码)用data: URL模式来把图片嵌入页面。这样会增加HTML文件的大小,把行内图片放在(缓存的)样式表中是个好办法,而且成功避免了页面变“重”。但目前主流浏览器并不能很好地支持行内图片。

减少页面的HTTP请求数是个起点,这是提升站点首次访问速度的重要指导原则。

Ⅲ、减少DNS查找

域名系统建立了主机名和IP地址间的映射,就像电话簿上人名和号码的映射一样。当你在浏览器输入www.yahoo.com的时候,浏览器就会联系DNS解析器返回服务器的IP地址。DNS是有成本的,它需要20到120毫秒去查找给定主机名的IP地址。在DNS查找完成之前,浏览器无法从主机名下载任何东西。

DNS查找被缓存起来更高效,由用户的ISP(网络服务提供商)或者本地网络存在一个特殊的缓存服务器上,但还可以缓存在个人用户的计算机上。DNS信息被保存在操作系统的DNS cache(微软Windows上的”DNS客户端服务”)里。大多数浏览器有独立于操作系统的自己的cache。只要浏览器在自己的cache里还保留着这条记录,它就不会向操作系统查询DNS。

IE默认缓存DNS查找30分钟,写在DnsCacheTimeout注册表设置中。Firefox缓存1分钟,可以用network.dnsCacheExpiration配置项设置。(Fasterfox把缓存时间改成了1小时 P.S. Fasterfox是FF的一个提速插件)

如果客户端的DNS cache是空的(包括浏览器的和操作系统的),DNS查找数等于页面上不同的主机名数,包括页面URL,图片,脚本文件,样式表,Flash对象等等组件中的主机名,减少不同的主机名就可以减少DNS查找。

减少不同主机名的数量同时也减少了页面能够并行下载的组件数量,避免DNS查找削减了响应时间,而减少并行下载数量却增加了响应时间。我的原则是把组件分散在2到4个主机名下,这是同时减少DNS查找和允许高并发下载的折中方案。

Ⅳ、避免重定向

重定向用301和302状态码,下面是一个有301状态码的HTTP头:

HTTP/1.1 301 Moved Permanently
Location: http://example.com/newuri
Content-Type: text/html
  浏览器会自动跳转到Location域指明的URL。重定向需要的所有信息都在HTTP头部,而响应体一般是空的。其实额外的HTTP头,比如Expires和Cache-Control也表示重定向。除此之外还有别的跳转方式:refresh元标签和JavaScript,但如果你必须得做重定向,最好用标准的3xxHTTP状态码,主要是为了让返回按钮能正常使用。

牢记重定向会拖慢用户体验,在用户和HTML文档之间插入重定向会延迟页面上的所有东西,页面无法渲染,组件也无法开始下载,直到HTML文档被送达浏览器。

有一种常见的极其浪费资源的重定向,而且web开发人员一般都意识不到这一点,就是URL尾部缺少一个斜线的时候。例如,跳转到http://astrology.yahoo.com/astrology会返回一个重定向到http://astrology.yahoo.com/astrology/的301响应(注意添在尾部的斜线)。在Apache中可以用Alias,mod_rewrite或者DirectorySlash指令来取消不必要的重定向。

重定向最常见的用途是把旧站点连接到新的站点,还可以连接同一站点的不同部分,针对用户的不同情况(浏览器类型,用户帐号类型等等)做一些处理。用重定向来连接两个网站是最简单的,只需要少量的额外代码。虽然在这些时候使用重定向减少了开发人员的开发复杂度,但降低了用户体验。一种替代方案是用Alias和mod_rewrite,前提是两个代码路径都在相同的服务器上。如果是因为域名变化而使用了重定向,就可以创建一条CNAME(创建一个指向另一个域名的DNS记录作为别名)结合Alias或者mod_rewrite指令。
 
摘自连接: 
https://blog.csdn.net/u012496505/article/details/73824327
https://www.cnblogs.com/xianyulaodi/p/5755079.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QWebEngineView 加载网页可能有多种原因,以下是一些常见的解决方法: 1. 确保网络连接正常:首先请确保您的网络连接正常,尝试使用其他浏览器访问相同的网站,以确定问题是否出现在网络连接上。 2. 清除浏览器缓存:清除浏览器缓存可能会帮助加快网页加载速度。在 QWebEngineView 中,您可以使用 `QWebEngineProfile::clearHttpCache()` 方法来清除缓存。 3. 禁用扩展或插件:某些浏览器扩展或插件可能会影响网页加载速度。您可以尝试禁用这些扩展或插件,然后重新加载网页。 4. 缩小网页资源:如果网页包含大量的图片、脚本或其他资源,可能会导致加载速度变。您可以尝试压缩这些资源,或者使用懒加载等技术来延迟加载这些资源。 5. 使用硬件加速:QWebEngineView 可以使用硬件加速来提高性能。您可以尝试在应用程序中启用硬件加速,或者使用更高性能的计算机来运行应用程序。 希望这些方法可以帮助您解决 QWebEngineView 加载网页的问题。 ### 回答2: QWebEngineView加载网页可能有以下几个原因: 1.网络连接不稳定:如果您的网络连接不稳定,那么加载网页的速度可能会受到影响。可以尝试连接到更稳定的网络或者联系网络服务提供商解决网速问题。 2.服务器响应速度:有些网站的服务器可能响应速度较,这也会导致QWebEngineView加载网页的速度。您可以尝试加载其他网页或者联系网站管理员寻求解决方案。 3.电脑性能较低:如果您的电脑性能较低,那么加载网页的速度可能会受到限制。可以尝试关闭其他占用系统资源的程序或者升级硬件来提升性能。 4.网页内容过多或复杂:一些网页可能包含大量的媒体、脚本或其他复杂的元素,这会影响加载速度。可以尝试加载简化版本的网页或者优化网页内容来提升加载速度。 总之,QWebEngineView加载网页可能由于网络连接、服务器响应、电脑性能或网页内容等原因造成。您可以根据具体情况采取相应的解决方案来提升加载速度。 ### 回答3: QWebEngineView是用于显示网页内容的控件,如果加载网页,可以从以下几个方面进行考虑和解决: 1. 网络连接:首先要确保网络连接稳定且网速正常。可以尝试通过其他浏览器访问同样的网页,如果加载速度也比较,那可能是网络问题,可以尝试重启路由器或联系网络服务提供商解决。 2. 电脑性能:如果网页加载速度较,可能是因为电脑的性能较低。可以尝试关闭其他正在运行的程序,释放系统资源,提高QWebEngineView的加载速度。 3. 缓存设置:QWebEngineView默认会缓存网页内容,如果缓存过多或缓存目录设置不当,会导致加载速度变。可以尝试清除QWebEngineView的缓存,或者设置合理的缓存大小,减少加载时间。 4. 网页内容优化:有些网页的内容过于复杂或者包含较多的大型媒体文件,会导致加载速度变。可以尝试优化网页内容,减少无关或非必要的资源加载,提高QWebEngineView的加载速度。 5. QWebEngineView设置:可以通过设置QWebEngineView的一些属性来优化加载速度,比如设置页面的缩放级别、禁用图片加载、禁用JavaScript脚本等。 综上所述,如果QWebEngineView加载网页,可以从网络连接、电脑性能、缓存设置、网页内容优化以及QWebEngineView设置等方面进行优化和调整,以提高网页加载速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值