由于互联网连接问题,我遇到了一些问题,一些必需的JavaScript文件未加载。 Body onload事件被触发,但页面逻辑所需的类不存在。
还有一件事,我想解决的问题不在于网站,而是在没有任何图像或CSS文件的Web应用程序中。想象一下在iframe中运行的JavaScript代码。因此,我只有脚本问题。
以下是我的想法如何解决这个问题,如果我错了,请评论/纠正我:
还有其他想法吗?
答案 0 :(得分:1)
如果“重试”脚本无法获取所需的依赖项,则重定向到站点的“无脚本”版本(如果有)。或者尝试使用优雅降级的页面,因此即使所有步骤都失败,该站点仍然可用。
答案 1 :(得分:1)
1 - 正确但仔细检查来自不同文件的JavaScript函数是否相互重叠
2 - 正确 - 应始终打开。
3 - 正确但浏览器仍会尝试从服务器获取HTTP 304: Not Modified
代码
4 - 正确,考虑在尝试1次或2次失败后回退到noscript
版本的网站(5次太多)。
答案 2 :(得分:1)
我个人认为尝试重做浏览器的逻辑并不值得。如果页面中的图像无法加载怎么办?如果主页面没有加载怎么办?如果用户有互联网连接问题,他们需要修复这些互联网连接问题。在他们这样做之前,许多事情都无法可靠地运作。
那么,您是否要检查页面显示的每个图像是否正确加载,如果没有加载,您是否会手动尝试重新加载?
在我看来,将一些内联JS用于检测外部JS文件是否未加载可能是值得的(您需要做的就是检查外部是否存在一个全局变量或顶级函数) JS文件),然后告诉用户他们有互联网连接问题,他们应该解决这些问题,然后重新加载网站。
答案 3 :(得分:1)
您的积分对脚本加载有效,但您还必须考虑网站使用情况。
如果由于某种原因未加载脚本,则该站点仍必须完全可用且可导航。用户体验优先于其他所有事物。
脚本应该在浏览器加载和可视化网站界面后加载,并且应该包含增强用户体验的代码,而不是你必须完全依赖的东西。
这种方式即使连接速度很慢,我仍然可以阅读内容并选择更改页面或转到其他地方,而不是显示空白页面或只显示标题的页面。
这对我来说是最重要的一点。
另外,您确定重试方法吗?它会导致对服务器的更多请求。如果连接缓慢或滞后,那么最好不要运行脚本,特别是考虑到用户可能在页面上花费的时间很少,只需要快速阅读内容。此外,在连接速度很慢的情况下,您会为超时设置多长时间?如果在超时触发时下载脚本并再次重试,该怎么办?如何有效地确定时间量和连接的“缓慢”?
修改强>
你试过head.js吗?是一个针对尽可能快的sripts加载的插件,也许它会有所帮助。