在asp.net页面上的jQuery加载页面/指标
问题描述:
我有两个asp.net页面,并且从Page1导航到Page2需要一些时间。 (第2页做数据访问的东西)。因此,我想在Page2完成加载时显示加载页面或指示符。在asp.net页面上的jQuery加载页面/指标
有没有什么办法可以在jQuery中做到这一点?
谢谢。
答
你可以做的一件事是调用一个页面来执行数据访问并将其放入内存(例如,使用Memcached)。
如果它不是一个很长的过程(它不会超时),那么你可以打电话给你的服务器使用getJSON。这个脚本可以访问你的数据库并把结果放入缓存中。处理完成后,它将输出一个JSON响应以及任何需要调用的响应(即用于将其存储在memcached中的密钥)。当响应返回时,重定向到页面(传递键),并从缓存中读取页面所需的数据。
不知道你在做什么代码你的服务器的东西,所以我只是举一个例子,我会在ASP .NET MVC中做的事情。
的JavaScript(上单击事件或某事):
$("#loadingIndicator").show();
$.getJSON('/DataAccess', function(data) {
window.location.href = '/CacheReader/' + data.Key;
});
服务器:
// Returns the JSON with the key
public ActionResult DataAccess() {
var row = GetRow();
var key = Guid.NewGuid();
Cache.Store(key, row);
return new Json(new { Key = key });
}
// Using the key, get the data from cache and output nicely.
public ActionResult CacheReader(string key) {
var cachedRow = Cache.Read(key);
return new View(cachedRow);
}
服务器代码可能有一些错误,但它希望在我的点得到。代码将在页面上显示一个加载指示符,直到JSON响应(这意味着所有内容都在缓存中)。然后它会重定向到正确的页面。让指示器消失并在超时/错误时显示“Oops”消息的做法可能是一个好主意。就这样用户不会永远等待。
它可能会非常棘手,因为它是服务器端负载,它不是ajax调用权限... – kobe 2010-12-05 20:04:09