我注意到最近许多网站显示文本的速度很慢。通常,将加载背景、图像等,但不会加载文本。一段时间后,文本开始出现在各处(并非总是同时出现)。
它的工作原理与以前相反,首先显示文本,然后加载图像,然后加载其余部分。什么新技术造成了这个问题?任何的想法?
请注意,我的连接速度很慢,这可能会加剧问题。
请参阅下面的示例 - 一切都已加载,但在最终显示文本之前还需要几秒钟:

运行 codelite 的先决条件是 WebKitGTK。
codelite: error while loading shared libraries: libwebkitgtk-1.0.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我在 CentOS 上,所以安装它很简单。
# yum install webkitgtk.x86_64
Run Code Online (Sandbox Code Playgroud)
这会安装库,但不会安装名为的文件libwebkitgtk-1.0.so.0,这就是我的问题。你是如何libwebkitgtk-1.0.so.0安装的?
我跑了updatedb,locate libwebkit这向我展示了这一点:
/usr/lib64/libwebkit-1.0.so.2
/usr/lib64/libwebkit-1.0.so.2.17.8
Run Code Online (Sandbox Code Playgroud)
我的机器是64位的。
我错过了什么?我想安装这个文件:libwebkitgtk-1.0.so.0
我遇到这个问题已经有一段时间了,通过基于 webkit 的浏览器查看的网站加载图像不一致。不一致,我的意思是在一次试运行中,一个或多个图像将成功加载,而其他图像则不会。在同一个网站的另一次试运行中,之前未加载的图像将突然加载——只有之前加载的图像突然无法加载。这种行为是如此非线性,以至于我很难找出问题的根源。我注意到,这个问题是复制与浏览器,如jumanji,dwb和vimperator。我相信所有这些浏览器的共同点是它们使用webkit. 重复重新加载网页有时会产生所有资源都正确加载的结果。
这是所描述行为的屏幕截图(来自基于 webkit 的luakit):

正如您所看到的,这是两个失败的图像,它们说明了此处的常见行为。我无法使用 firefox 或 chrome 等浏览器(我相信它们分别使用gecko和blink)来复制此问题。如果我右键单击图像/元素并在新窗口中打开它,我可以毫无问题地查看图像。我正在运行 Arch Linux 内核 3.12.9-1-ck。任何有关可能发生的事情的帮助/见解将不胜感激。谢谢你。
更新:当通过 luakit 中的调试控制台将每个损坏的图像作为元素进行检查时,会输出以下一般形式的内容:
GET [web address here] Cannot resolve hostname [domain here]
Run Code Online (Sandbox Code Playgroud)
更新 2:我尝试通过,在我的系统(基于 debian)上安装luakit的虚拟机安装,有趣的结果......没有未解析的主机名/损坏的图像/失败的资源的症状。在此虚拟环境中,浏览速度也相对较快。kali-linuxapt-get install luakit
遵循@harrymc 提出的建议(使用 Google 公共 DNS)已经完全消除了页面加载不良的所有症状。根据@harrymc 的说法,这是由于错误/缓慢的 DNS 和/或糟糕的 DNS 缓存策略造成的。更具体地说,导致此问题的原因是 DNS 不佳,以及webkit引擎中内置的似乎相当仓促的超时协议。这两个因素是灾难的根源。
另一个结论是 Webkit 浏览器的低效率,因为它们对同一个网站发出多个 DNS 查询,而不是记住第一个查询。另一个结论是,ISP 的 DNS 服务器有时显然无法处理多个并行请求(因为浏览器可能通过线程并行处理多个图像),可能是因为它们现在有更多的客户端,但没有足够的 DNS 服务器。 --harrymc