Chrome上的jQuery ajax:以编程方式禁用"使用预测服务更快地加载页面"

时间:2016-12-21 09:17:31

标签: jquery ajax google-chrome

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

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

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

我注意到有时候请求会停止并长时间停留Pending

在使用Google搜索并查看thisthat问题后,我停用了"使用预测服务更快地加载页面" Chrome设置中的标记问题已解决。

但是,我需要找到一种方法以编程方式禁用此标记(可能通过向我的ajax调用添加请求标头?),因此我的用户不会遇到此问题。

我手动禁用的Chrome设置出现在此图片中:

Use a prediction service to load pages more quickly

1 个答案:

答案 0 :(得分:0)

根据Mozilla的说法,这似乎不是浏览器的问题,而是很可能是实施的问题。

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

是否首选禁用链接预取?

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

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

然而,理论是如果需要禁用链接预取,那么实现必定存在问题。如果它不能正常工作,我们宁愿改进实现,而不是期望用户找到并调整一些模糊的偏好。

我为我的HTTP请求使用Vue-Resource。它看起来很像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)
})