对于大型数据集,YUI数据表在IE中失败

时间:2010-09-24 19:52:20

标签: internet-explorer-8 yui-datatable

我有一个DataTable和DataSource(YUI 2.6)。 XHRDataSource连接到一个XML生成地址,这是一个servlet,我通过PrintWriter将XML写入响应。

的Servlet

String data = dataProvider.fetch(request.getPathInfo());
int cLen = data.length();
response.getWriter().append(data); 
response.setContentLength(cLen);
response.setContentType("text/xml");
response.getWriter().flush();

的javascript:

var url = "../data/SomeProvider";
this.myDataSource = new YAHOO.util.XHRDataSource(url);
this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_XML;
this.myDataSource.connXhrMode = "queueRequests";
this.myDataSource.responseSchema = responseSchema;
this.myDataSource.maxCacheEntries = 0;

它适用于FF3。我可以通过Firebug看到xml返回,看起来不错;表和连接到数据源的所有其他内容都可以正常呈现。

在IE8中,它对于完整数据集失败(390行......真的不那么大),数据表声称没有找到任何行。但是,如果我减小尺寸(比如20-30行),IE工作正常。我一直在寻找高低,但我没有想法 - 任何线索我缺少什么?

EDIT 附加信息。当XML响应超过8192字符标记时,失败是正确的。根据我的阅读,IE在URL或参数字符串中限制为8192个字符 - 但为什么该限制适用于写入响应流本身的数据?或者XMLHttpRequests的处理方式不同?

1 个答案:

答案 0 :(得分:1)

我弄清楚了,但我不知道为什么会这样。

中加入:

response.setBufferSize(cLen);

到servlet使IE很开心。我猜这个参数默认为8192,IE不会要求其余的流?就像我说的,我不知道它为什么会起作用。这让我很紧张!