在后台获取数据,而不会影响UI在.net + jquery
问题描述:
我需要在JQuery中创建多个搜索请求,从不同的表/页搜索,我需要将所有的搜索结果结合到一个HTML表,并显示在UI中的结果。在后台获取数据,而不会影响UI在.net + jquery
下面是我的做法..
jQuery的使用$阿贾克斯,我去到服务器(.NET代码),获取JSON数据,回来的JS文件并生成一个HTML表,并显示结果(此结果将有复选框供用户检查/取消选中结果)。一旦我显示结果,我再次使用$ .ajax,转到服务器(.NET代码)并获取数据,并将结果附加到第一个HTML表。
我的要求是,这两个请求之间,我需要
1)显示正在加载图像/文本。
2)用户应该能够访问(滚动,检查,取消选中)第一个JSON请求返回的HTML表结果。
我能够完成1)也。我面临的问题是关于2)。 一旦结果来自第一个请求,并且一旦我在div中显示结果,我再次使用$ .ajax触发第二个搜索请求。目前我无法访问HTML表格。页面冻结,直到第二个请求的结果到来,并将结果绑定到HTML表格。
我的代码是这样的。
function SearchDetails() {
GetDetails("Test", 0); /*Trigger First Request*/ }
function GetDetails(searchKeyword, iAppend) {
$.ajax({
type: "POST",
url: "FETCH_DETAILS.asmx/GetDetails",
data: "{'searchKeyword':'" + searchKeyword + "', 'Append':'" + iAppend + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
crossDomain: true,
jsonp: false,
success: function (response) {
if(iAppend == 0) //First Request
{
BindTable(response.d, iAppend); //Creates new HTML table and binds results
GetDetails("TestNew", 1);//Trigger Second Request
}
else if (iAppend == 1) {
BindTable(response.d, iAppend);
}
},
failure: function (msg) {
alert(msg);
},
});}
function BindTable(SearchResults, iAppend){
/*Creates HTML Table & binds to a div for First Request
Creates HTML Table Rowss & appends to existing HTML table for Second Request*/ }
请建议我我是否错过什么,还是有办法从jQuery的到服务器(.NET代码),而不影响(获得冻结)显示/ UI。
答
也许设置:
async: false
到
async: true
** [此链接](https://github.com/vadimsva/waitMe)**可能会给你的想法.. – 2015-03-31 07:05:00