0

我在 codeigniter 框架中使用 ajax 使用这样的代码将数据注入到预定义的(现成的)表中......

    foreach ($this->results['rawData'] as $item){
            $str.="<tr onclick='document.location ='#'>"; // link to view record

            $str.='<td class="record-company-name"><input type="checkbox"></td>';
            $str.="<td>".$item->companyname."</td>";
            $str.="<td>".$item->city."</td>";
            $str.="<td>".$item->postcode."</td>";

....

            $str.="</tr>";
        }
echo $str;

该表还与它关联的 jquery 通过单击表标题来提供数据的分页和排序。对于 1000 行,一切都很好,但除此之外它很慢,对于 > 5000,我收到浏览器警告以退出脚本。数据变化不大。

问题是所有数据都被一次注入表中,jquery 无法处理。

通过每次只注入 1000 条记录并结合分页来改善这种情况的最佳方法是什么。CI 分页类与 memcache 一起是一个好方法吗?

我确信这是一个常见问题。这个问题的最佳解决方案是什么?

欢迎所有建议。

4

3 回答 3

0

所以通过注入你的意思是显示正确吗?即使后端速度更快,也要考虑用户。您一次下载 5000 行。只下载显示的内容怎么样?

您可以为此使用 CI 的分页。至于对数据进行排序,您可以简单地使用 CI 的活动记录类$this->db->order_by(); 。如果效果很好,那么如果仍然需要,您可以对整个事情进行 AJAX 化。

希望这可以帮助。如果您需要更多帮助,请告诉我们。

于 2012-07-03T20:35:36.570 回答
0

您可以考虑尝试 jQuery Grid。它应该可以解决这个问题,它还为表格数据提供了更多功能。

于 2012-07-04T07:36:26.133 回答
0

我自己没有尝试过 codeigniter 框架,但字符串连接(您正在使用)通常不利于大多数语言的性能。也许您应该使用不同的方法,例如使用 JQuery 模板?

于 2012-07-03T18:13:39.470 回答