【问题标题】:YUI Datatable failing in IE for large datasetsYUI Datatable 在 IE 中针对大型数据集失败
【发布时间】:2010-09-24 19:52:20
【问题描述】:

我有一个 DataTable 和 DataSource (YUI 2.6)。 XHRDataSource 连接到作为 servlet 的 XML 生成地址,我在其中通过 PrintWriter 将 XML 写入响应。

小服务程序:

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 个字符 - 但为什么该限制适用于写入响应流本身的数据?还是 XMLHttpRequest 的处理方式不同?

【问题讨论】:

    标签: internet-explorer-8 yui-datatable


    【解决方案1】:

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

    添加:

    response.setBufferSize(cLen);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      相关资源
      最近更新 更多