【发布时间】: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