我有一個gridview和一個按鈕。在按鈕上點擊使用jQuery ajax調用將數據綁定到gridview。下面是代碼。使用jQuery Ajax調用gridview中的數據顯示太慢
我跟着代碼,在這個環節上解釋 http://www.aspdotnet-suresh.com/2012/03/bind-data-to-gridview-with-jquery-or.html
- 我獲取數據到數據表從數據庫
- 通過循環的一個DataTable
- 返回這個每行以數據表的數據爲List對象列表爲.cs靜態WEBMETHOD,這也返回相同的列表
- 我是.cs WEBMETHOD按鈕點擊jQuery ajax並將列表數據添加到gridview,如下所示。
代碼:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ManualReconJS.aspx/GetRemarkHistory",
data: JSON.stringify({
sAppId: sAppId,
sTempl: sTempl,
sUserId: sUserId,
sSrno: sSrno
}),
cache: false,
dataType: "json",
beforeSend: function() {
$("#imgModalRemarks").show();
},
success: function(result) {
$('#gvRemarksHistory').empty();
var tempDataHtml = "";
if (result.d.length > 0) {
for (var i = 0; i < result.d.length; i++) {
tempDataHtml = "";
if (i == 0) {
var items = result.d[i].toString().split(',');
tempDataHtml += "<tr>";
for (var j = 0; j < items.length; j++) {
tempDataHtml += "<th>" + items[j] + "</th>";
}
tempDataHtml += "</tr>";
} else {
var items = result.d[i].toString().split(',');
tempDataHtml += "<tr>";
for (var j = 0; j < items.length; j++) {
tempDataHtml += "<td>" + items[j] + "</td>";
}
tempDataHtml += "</tr>";
}
$("#gvRemarksHistory").append(tempDataHtml);
}
} else {
$("#imgModalRemarks").hide();
alert('Remarks history not found.');
}
$("#imgModalRemarks").hide();
},
error: function(result) {
var err = $(result.responseText).filter('title').text();
alert("Message: " + err);
$("#imgModalRemarks").hide();
}
});
return false;
我的要求是,以顯示GridView的言論。以上代碼工作正常,當備註數據太少時,速度很快。我在數據量很大時遇到問題。假設我有超過10000條記錄,並且我也實現了分頁邏輯(每頁1000個)。當頁面加載顯示前1000條評論,並在下一次單擊時顯示另外1000個評論,像這樣...但每下一個/預先點擊數據提取是非常非常慢,每次點擊我的頁面被絞死,直到過程完成。
請建議我提取並顯示數據到網格上的最佳方法。 如何才能讓它快速?從數據庫提取數據非常快(以毫秒爲單位) 是否無法直接將數據表綁定到gridview?
在追加動態生成的html時,使用原生JavaScript,如document.getElementById('gvRemarksHistory')。appendChild(tempDataHtml);這會使它快一點jquery.append() – Gagan
@ user1463065,你可以使用jQuery的虛擬滾動來解決你的問題... – User125
我在這裏有另一個probelm。直到完成ajax調用我的頁面被掛起意味着我無法訪問頁面上的任何控件。如何解決此問題 – user1463065