【发布时间】:2011-07-22 12:02:06
【问题描述】:
我为 Wordpress 编写了一个插件,它生成一个 jQuery.accordion 列表,其中包含从数据库中提取的内容。我还让它通过 jQuery.load 方法通过单独的页面 (update.php) 每 5 秒从数据库中提取更新的结果。
我遇到的问题是我正在为 update.php 文件中的 div 生成完整的 HTML。似乎我可以让它查询数据库,然后将结果返回到主文件,但我不确定如何去做。基本上,我关心的是效率,因为我做事的方式可能会对浏览器资源造成相当大的负担。我有一种预感,这种方法的内存使用量将继续攀升,直到它不可避免地达到峰值并且浏览器崩溃。
我正在寻找有关如何更好地编写此代码的任何指导。我在下面提供了概念验证示例,因此我希望任何人提供反馈,无论是建设性的还是批评性的。谢谢!
main.php:
<script type="text/javascript">
$(function() {
$("#accordion").load("update.php");
var refresh = setInterval(function() {
$k("#accordion").load("update.php");
}, 5000);
});
</script>
<div id="accordion"></div>
更新.php:
<?php
function page_update() {
global $wpdb;
$out = '';
$out .= '<script type="text/javascript" src="jquery-1.5.min.js"></script>';
$out .= '<script type="text/javascript" src="jquery-ui-1.8.11.custom.min.js"></script>';
$out .= '<script type="text/javascript">
var $j = jQuery.noConflict();
$j(function() {
$j("#accordion").accordion();
});
</script>';
$sql = "SELECT * FROM table ORDER BY name DESC;";
$results = $wpdb->get_results($sql);
foreach($results as $res) {
$out .= '<h3>'.$res->name.'</h3>';
$out .= '<div id="content-'.$res->name.'">'.$res->score.'</div>';
}
echo $out;
}
page_update();
?>
【问题讨论】:
标签: php jquery database ajax refresh