【发布时间】:2011-05-19 19:57:42
【问题描述】:
我有一个表,每次从下拉列表中选择一个新选项时,它都会异步重建。我可以拨打电话并且正确生成了 HTML,但是当通过网络将其发送回时,如果尺寸太大,它会中断。
我在想一个解决方案是查询表的各个部分,直到通过每次单独调用返回所有行。然后我想到了 Twitter 如何处理他们的提要并在用户滚动到列表底部时添加更多内容。
有什么建议吗?
这是我正在尝试做的一些代码示例:
$('[id$=ddCorpIngredientClasses]').change(function () {
callScriptMethod(
'IngredientProperties.aspx/ReBuildCorpIngredientTable',
{ 'ingredientClass': $(this).val() },
function (result) {
$('[id$=_SlideOutPanelBodyTable]').empty();
$(result).each(function () {
var row = this.toString();
$('[id$=_SlideOutPanelBodyTable]').append(row);
});
adjustBodytable();
});
});
function callScriptMethod(url, jsonObject, callback, async) {
callback = callback || function () { };
async = (async == null || async);
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: url,
data: JSON.stringify(jsonObject),
dataType: 'json',
async: async,
success: function (jsonResult) {
if ('d' in jsonResult)
callback(jsonResult.d);
else
callback(jsonResult);
},
error: function () {
alert("Error calling '" + url + "' " + JSON.stringify(jsonObject));
callback([]);
}
});
}
【问题讨论】:
-
"如果尺寸过大,它会损坏" 你是什么意思?多大? “休息”是什么意思?另外,您使用的是 GET 还是 POST?
-
你有代码示例吗?您究竟在发送什么,从哪里发送,使用什么协议以及发送到哪里?
-
lonesomeday,我正在发布,我想要带回的查询中有大约 400 行。通过中断,我的意思是它不会从服务器返回给客户端。当我调试时,它具有所有正确的值,但返回时我的 JSON 调用终止。
-
我通过取出 .each 语句并仅附加整个数组来解决此问题。这大大提高了我屏幕上的性能。因此,如果您看到滞后问题,请在代码中查找 for 循环。
标签: jquery html ajax twitter html-table