Zend 视图通常会立即渲染,但数据集很大;将 1500 个对象放入 xml 视图中,需要 2-3 秒,这对我的应用程序来说是不可接受的。任何建议将不胜感激。
问问题
545 次
2 回答
3
600 KB 可以或不可以强制应用程序执行缓慢。执行时间取决于实际脚本、其持久层、从 Web 到数据库服务器的连接等等。因此:
首先,以这样一种方式检测您的应用程序,即计算服务器端脚本所花费的时间。
例如,像这样重命名index.php
并realIndex.php
创建一个新的index.php
:
$startTime = microtime(TRUE);
require_once( dirname( __FILE__ ) . '/realIndex.php' );
$endTime = microtime(TRUE);
echo '<hr />Time taken: ' . ( $endTime - $startTime ) . ' micros';
当然,这种方法是微不足道的,并不适用于任何情况。然而,这是一个起点。
尝试返回少量数据
通常,大量数据项(无论是否为 XML)都表达了糟糕的用户体验和技术设计
因此,我建议在服务器端处理尽可能多的数据并将压缩数据集返回给客户端。不要忘记:在检索和处理数据方面,您的数据库系统或多或少总是比您的脚本快。
由于用户无法真正理解来自 1500 项网页的所有数据,因此我建议对结果视图的数据进行分页。检索 1/10 的大数据集并提供导航控制以转到上一页或下一页。
请注意,这不仅可以帮助用户,还可以减少数据量,您的数据库需要扫描和检索 - 如果数据库定义良好。例如索引要搜索的属性并尝试将记录保存在固定大小的表中,等等......
于 2012-09-08T23:09:04.190 回答
0
三件事:
- 忘记分析。您已经确定它很慢,这并不奇怪 - 1500 组数据是很多数据!
- 添加分页!确定每页的最大项目数量(限制),然后添加分页控件。
- 研究诸如 memcache 之类的缓存解决方案——尤其是在数据不经常更新的情况下。
看起来其中一些项目已经在另一个答案中得到解决。一定意味着我们正在做某事:-)
于 2012-09-09T16:24:40.933 回答