使用 AJAX 优化表数据的显示


optimal display of table data using ajax

我在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 一起是一个好方法吗?

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

欢迎所有建议。

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

所以注入

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

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

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

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