我有一个asp.net MVC应用程序,它使用最少的AJAX。在服务器响应HTML和数据之前,我有一些页面需要很多数据库工作。“等待服务器”时运行jquery或javascript函数
根据请求的内容和用户有多少条记录,用户点击按钮或链接后可能会有几秒或更长的延迟(可能是GET,POST,href,表单提交等)。 ),浏览器已经提交了请求并且正在旋转轮子等待响应,但尚未加载新页面,因为服务器尚未返回任何内容。
因此,使用document.ready
和window.load
等都不是解决方案,将工作来触发加载微调器。我需要一旦服务器发出请求就立即启动。
此外,使用沿着线的东西
$(document).click(function() {//start loading spinner here}
也将无法工作,因为有元素所有的地方可以与之交互,但不要让一个服务器请求(即引导导航板等)
我需要实现一个加载微调器(或类似的东西,表示工作正在进行并且响应即将到来),当服务器发出请求时运行,并且浏览器正在“等待响应服务器”。
更新 - 事情我已经尝试:
这将触发正在加载的旋转插头loading.js
在需要时,也将触发它时,它不是,这样的自举UI元素等进行交互时,作为
$(document).click(function() {
//Start loading.js anytime a button is clicked
//Show full page LoadingOverlay
$.LoadingOverlay("show");
});
这不起作用,因为一旦服务器返回响应(这是其中长延迟是),还有一个第二左的仅馏分为浏览器呈现HTML并显示图。
$(document).ready(function() {
// Show full page LoadingOverlay
$.LoadingOverlay("show");
});
$(window).on(load, function() {
//Stop loading.js after page loads
$.LoadingOverlay("hide");
});
到目前为止,你做了什么? –
查找['beforeSend:函数(){...}'](http://api.jquery.com/jquery.ajax/) –
我与'$(文件)。单击发挥各地(函数() {//在这里开始加载微调器}',并考虑了各种方法,我可以推断出所有页面上的不同按钮和链接类型,尽管这听起来非常混乱,并且想要了解是否有全局事件jquery或javascript可以绑定到浏览器的“等待响应”状态 – amartin