我正在构建一个基于Web的简单仪表板系统。

我有一个简单的html,它使用jQuery ajax调用我的服务器:

$( document ).ready(function() {
    var url = "...";
    $.ajax({url : url, type : 'get'})
        .done(successFunction)
        .fail(errorFunction);
});


我注意到有时请求被暂停并长时间保持Pending

谷歌搜索并看到thisthat问题后,我在Chrome设置中禁用了“使用预测服务更快地加载页面”标志,此问题已解决。但是,我需要找到一种以编程方式禁用此标志的方法(也许通过向我的ajax调用中添加请求标头?),所以我的用户将不会遇到此问题。我手动禁用的Chrome设置显示在此图像中:jquery - Chrome上的jQuery ajax:以编程方式禁用“使用预测服务更快地加载页面”-LMLPHP

最佳答案

根据Mozilla的说法,这似乎不是浏览器的问题,而更多的是实现方面的问题。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Link_prefetching_FAQ

是否有禁用链接预取的首选项?

是的,您可以设置一个隐藏的首选项来禁用链接预取。将此行添加到位于配置文件目录中的prefs.js文件中(或通过about:config进行适当的更改):

user_pref("network.prefetch-next", false);


但是,从理论上讲,如果需要禁用链接预取,则实现一定存在问题。如果它不能正确运行,我们宁愿改进实现,也不希望用户找到并调整一些晦涩的偏好。

我将Vue-Resource用于我的HTTP请求。它看起来很像Ajax,并且我在浏览器中启用了相同的设置,并且可以完美地处理它。语法非常简单,而且文件很小。语法看起来像这样。

链接到这里https://cdnjs.cloudflare.com/ajax/libs/vue-resource/1.0.3/vue-resource.js,文档在这里。

https://github.com/pagekit/vue-resource/blob/master/docs/http.md

Vue.$http.get('path/to/url').then(function(success){
    console.log(success.body);
},function(error){
   console.log(error)
})

关于jquery - Chrome上的jQuery ajax:以编程方式禁用“使用预测服务更快地加载页面”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41259055/

10-16 22:40