【问题标题】:extjs JsonP proxy can't load large amounts of dataextjs JsonP代理无法加载大量数据
【发布时间】:2016-02-06 05:55:19
【问题描述】:

我有一个带有 JsonP 代理的商店,当我加载大约 2500 条记录时,商店加载得很好,但是当它超过这个值时,它给了我这个错误:

Uncaught TypeError: Ext.data.JsonP.callback1 is not a function

错误在输出的PHP文件中,下面是我的商店代码:

Ext.define('DVD.store.DVDOnline', {
    extend: 'Ext.data.Store',
    requires: [
        'DVD.model.DVD'
    ],
    config: {
        model: 'DVD.model.DVD',
        storeId: 'DVDOnlineStore',
        autoLoad: false,
        proxy: {
            type: 'jsonp',
            url: 'http://' + ((localStorage.getItem('serverIP') == null) ? "127.0.0.1" : localStorage.getItem('serverIP')) + '/mobile_apps/stores/DVD/test.php',
            reader: {
                type: 'json',
                rootProperty: 'responseData.feed.entries'
            }
        }
    }
});

请注意,商店没有在任何列表上呈现,我只是在加载而不渲染它,所以我排除了浏览器缓冲区溢出的原因,当我在上面的商店调用 load() 时抛出错误.

JsonP 文件大小约为 400 kb,有 3000 条记录,每条记录有 3 列。

我一开始以为可能是一个字符,所以我把我所有的数据都换成了“测试测试”,它不起作用!

那么文件的大小是否有限制?或者一家商店可以拥有多少条记录?

我希望有人能花时间研究这个问题并为我提供答案,我一直在寻找这个问题。

谢谢

【问题讨论】:

  • 你看回复了吗?是 JavaScript 格式正确还是服务器端有错误?
  • 响应文件不应该自己触发,当您自己运行响应时,它肯定会给出上述错误“不是函数”,但它应该被触发从应用程序内部!当我将输出数据限制为 2000 条记录时,代码 100% 工作,仅当数据高于 2500 条左右时才会出错。输出是Ext.data.JsonP.callbackX(json_output.....)里面的json输出是100%有效的json,我检查了不止一次

标签: javascript json extjs sencha-touch-2 jsonp


【解决方案1】:

为了解决您的问题,我建议您使用商店的buffer 功能。这可以避免您的商店规模问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多