Chrome 上的 jQuery ajax : programmatically disable "Use a prediction service to load pages more quickly"

标签 jquery ajax google-chrome

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

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

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

我注意到有时请求会停滞并长时间处于Pending状态。

谷歌搜索后看到thisthat问题,我在 Chrome 设置中禁用了“使用预测服务更快地加载页面”标志,问题就解决了。

但是,我需要找到一种方法以编程方式禁用此标志(也许通过向我的 ajax 调用添加请求 header ?),这样我的用户就不会遇到此问题。

我手动禁用的 Chrome 设置如下图所示:

Use a prediction service to load pages more quickly

最佳答案

根据 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)
})

关于Chrome 上的 jQuery ajax : programmatically disable "Use a prediction service to load pages more quickly",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259055/

相关文章:

javascript - 使用 jQuery Validate SubmitHandler 提交表单后重定向到不同的 URL(不使用 Ajax)

php - 如何使用 AJAX、PHP 和 jQuery 更新选择选项值

javascript - 使用 JavaScript 将光标置于 Chrome 文本输入元素中

javascript - Chrome 控制台中丢失换行符

javascript - 为什么我的 Google Picker 窗口不会出现在浏览器中

javascript - 如何取消选中选中的单选按钮

javascript - 使用 jQuery 动态生成图像源

javascript - 如何在以ajax方式插入后刷新我的服务器控件?

c# - 异步。回发导致 Page_Init? (C#)

jquery - 使用 Jquery 和 AJAX 获取 Twitter 链接、Facebook 点赞和 Google +1 的计数