我目前正在尝试加载一张大表(8800行/2.5 MiB),但它崩溃了。在Chrome F12中,我收到错误:
POST http://localhost/web/app_dev.php/_entity_find 500 (Internal Server Error) main.js:3
k.cors.a.crossDomain.send main.js:3
n.extend.ajax main.js:3
(anonymous function)
(main.js是我编译的包含select2的JS)
我还有其他' select2 autocomplete'在同一页面上搜索较小的表格的字段,这些字段完全正常。
查看Apache error.log我有这个错误:
[client ::1:55760] AH00124: Request exceeded the limit of 10 internal
redirects due to probable configuration error. Use 'LimitInternalRecursion'
to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.,
referer: http://localhost/web/app_dev.php/user/prod/new
如果我将字段作为普通选择字段加载它加载精细,相当大并且需要大约7秒但加载所有相同。
使用Symfony 2.4。*,Doctrine2和select2的最新下载。
好吧,在删除除2行以外的所有内容之后,只是为了测试一些小的表,我发现它仍然无法加载。我现在重建了表格,但带有标准自动增量的ID列。以前我正在导入一个大型数据集,其中包含一个从1001开始的Id表,不幸的是,只要我的挖掘已经发现它被设置为Primary而打破了Select2。不知道如何或为什么,但至少它现在有效。我希望这可以节省别人挖掘的日子,只是为了找到你在错误的区域完全挖掘。
答案 0 :(得分:1)
首先,在调试模式(app_dev.php
)中加载大量数据会在内存中加载更多数据,即对于包含100个项目的简单列表,它将加载类似3x内存的内容,而不是生产模式, #39;由记录器,秒表和类似的调试工具引起的。
其次,对于此类数据量,您应该对Select2使用ajax
甚至ajax infinite
设置,可能使用preloaded items。通过这种方式,您可以访问更多网站,但不会崩溃,也不会正常呈现。
答案 1 :(得分:0)
好吧,在删除除2行以外的所有内容之后,只是为了测试一些小的表,我发现它仍然无法加载。我现在重建了表格,但带有标准自动增量的ID列。以前我正在导入一个大型数据集,其中包含一个从1001开始的Id表,不幸的是,只要我的挖掘已经发现它被设置为Primary而打破了Select2。不知道如何或为什么,但至少它现在有效。我希望这可以节省别人挖掘的日子,只是为了完全找到你在错误地区的挖掘。
如果有人能解释原因,我很乐意接受你的回答。