2010-09-24 71 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