我是用jsonp做跨域彗星请求的,“加载中”的状态真的很烦人。
有没有办法用javascript来抑制这个?
对于那些不熟悉 jsonp 的人来说,它基本上注入了一个脚本标签,除了在我的情况下,我将请求挂在我的服务器上,直到稍后才返回请求。
在此期间,浏览器将我的请求视为“加载”状态。
我正在使用这个:http ://code.google.com/p/jquery-jsonp/
提前致谢!
我是用jsonp做跨域彗星请求的,“加载中”的状态真的很烦人。
有没有办法用javascript来抑制这个?
对于那些不熟悉 jsonp 的人来说,它基本上注入了一个脚本标签,除了在我的情况下,我将请求挂在我的服务器上,直到稍后才返回请求。
在此期间,浏览器将我的请求视为“加载”状态。
我正在使用这个:http ://code.google.com/p/jquery-jsonp/
提前致谢!
如果您在页面完成加载后开始您的第一个请求,您应该能够避免加载指示器。
$(function () {
setTimeout(function () {
$.jsonp(...)
}, 1000);
});
据我所知,无论您为什么拥有它,都无法使用 Javascript 来抑制加载状态。
但是,对于跨域 COMET,至少有一个替代方案一开始不会触发加载状态。XMLHttpRequest 没有设置加载状态,根据我的测试,允许跨域 XHR 的 CORS(跨域资源共享)规范得到了很好的支持。
基本上,支持如下:(根据浏览器文档和我自己对我正在从事的项目的测试)
全面支持:
未经测试,但应完全支持:
有限的支持:
明显不支持:
这不是一个完整的列表,但它是我可以找到测试的每个支持用户脚本的浏览器。如果您需要,我已经花时间在CORS 维基百科页面上引用我的资源。
我能想到的最简单的解决方案是测试 CORS,然后回退到 JSONP,以便使用现代浏览器的人获得完美的体验,而使用旧浏览器的人将加载状态视为不可避免的副作用。
这是关于 CORS 工作原理的 MDC 页面。