这个问题我最近几个小时都在拔头发。谷歌搜索一直受到这种模糊性的阻碍。所以,我先为此道歉。
基本上我使用jquery和ajax(使用C#)从后端返回数据并将其显示在屏幕上。该代码适用于firefox和IE。但是当数据太大(??)(1500+表行)时,我得到的是一个未定义的弹出窗口。
在firefox(3.6)中调试它甚至没有进入成功方法。更糟糕的是它甚至没有进入错误方法。那里有很多多余的信息,但我宁愿展示我正在做的一切。
守则
$j.ajax(
{
type: "POST",
url: "AdminDetails.aspx/LoadCallDetails",
data: "{" + data + "}",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(msg) {
$j("#CallDetailsHolder").html(msg.d);
$j(".pointingHand").hide();
var oTable = $j('#dt').dataTable({
"bProcessing": true,
"bPaginate": true,
"bSort": true,
"bAutoWidth": false,
"aoColumns": [
{ "sType": 'html' },
{ "sType": 'custdate' },
{ "sType": 'html-numeric' },
{ "sType": 'ariary' },
{ "sType": 'html' },
{ "sType": 'html' }
],
"oLanguage": {
"sProcessing": "Traitement...",
"sLengthMenu": "_MENU_ Montrer",
"sZeroRecords": "Aucun enregistrement",
"sInfo": "_START_ à _END_ de _TOTAL_",
"sInfoEmpty": "0 à 0 de 0",
"sInfoFiltered": "(filtrée à partir de _MAX_ )",
"sInfoPostFix": "",
"sSearch": "Rechercher",
"sUrl": "",
"oPaginate": {
"sFirst": "premier",
"sPrevious": "Précédent",
"sNext": "suivant",
"sLast": "dernier"
}
},
"sDom": 'T<"clear">lfrtip'
});
$j('#CompteBlocRight0').unblock();
$j('#btnRangeSearch').click(function() { oTable.fnDraw(); });
},
error: function(msg) {
DisplayError(msg);
$j('#CompteBlocRight0').unblock();
}
}); //$.ajax
}
代码绝对有效。甚至在IE中显示也没有任何问题。
任何帮助???
答案 0 :(得分:0)
由于它适用于小型数据集,并且无法使用大型数据集,因此您需要将失败的案例与大型数据集隔离开来。
使用Firebug中的“网络”选项卡查看服务器的响应。状态2xx应该进入成功处理程序,所有其他人应该进入错误处理程序。也许你的服务器正在以一种Ajax控件混淆的方式发挥作用?
由于存在这些类型的错误,通常非常有助于简化调试代码。尝试使用此代码,将处理程序替换为简单消息:
$j.ajax(
{
type: "POST",
url: "AdminDetails.aspx/LoadCallDetails",
data: "{" + data + "}",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(msg) {
console.log("in success handler");
},
error: function(xhr, textStatus, errorThrown) {
console.log("in error handler: "+textStatus);
console.dir(xhr);
console.dir(errorThrown);
}
}); //$.ajax
}
UPDATE:错误处理程序的签名不正确。更新了我的样本。
答案 1 :(得分:0)
你把你的字符集设置为utf-8?触发大弹出窗口的关键字是服务器端无法理解的吗?
本文是关于使用PHP的JSON / Ajax / UTF-8,但请阅读:http://particletree.com/notebook/json-ajax-and-utf8/
答案 2 :(得分:0)
经过一番挖掘,这似乎是个问题。