2010-09-24 39 views
0

我有一个DataTable和DataSource(YUI 2.6)。 XHRDataSource连接到一个XML生成地址,这是一个servlet,我通过PrintWriter将XML写入响应。YUI Datatable在大型数据集IE中失败

的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工作正常。我一直在寻找高低,但我没有想法 - 任何线索我失踪了?编号 其他信息。当XML响应越过8192字符标记时,失败是正确的。从我读到的,IE在URL或参数字符串中有8192个字符的限制 - 但为什么这个限制适用于写入响应流本身的数据呢?或者XMLHttpRequests得到不同的处理?

回答

1

我想通了,但我不知道为什么是这样。

补充说:

response.setBufferSize(cLen); 

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

+0

有趣的(+1) – 2010-10-03 15:39:43