【发布时间】:2017-08-14 03:09:52
【问题描述】:
我有一个使用最少 AJAX 的 asp.net MVC 应用程序。在服务器响应 HTML 和数据之前,我有一些页面需要大量的数据库工作。
根据请求的目的和用户拥有的记录数,用户单击按钮或链接(可能是 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");
});
【问题讨论】:
-
到目前为止你做了什么?
-
我玩过
$(document).click(function () {//start loading spinner here}并考虑了各种方法,我可以在所有页面上的不同按钮和链接类型中推断出这一点。不过,这听起来非常混乱,并且想了解是否有一些全局事件 jquery 或 javascript 可以绑定到浏览器的“等待响应”状态。 -
@amartin 请更新您的问题以显示您的尝试;请展示一个简化的工作示例。
-
@Louys Patrice Bessette 我没有使用 AJAX - 这些是整页刷新。
标签: javascript jquery html asp.net-mvc