我正在使用jQuery UI选项卡式内容以及数据表来呈现数据库中的信息。这一切都在一个页面上,因为每个表只是隐藏在页面上,所以对数据库有很多不需要的查询。
该站点使用zend框架,此页面加载一个控制器和视图文件。我在想使用partials但是只有在点击标签后才可以加载它们吗?如果是这样的话?或者是否有更好的方法来优化此标签内容页面?
由于
答案 0 :(得分:3)
您可以在用户点击标签后加载标签内容 - 事实上jqueryui.com demos section中有一个简单示例。
在服务器端,您可以将标签视图划分为单独的操作(只是为了澄清 - 我在这里不仅仅考虑部分,而是针对每个标签单独的操作和视图模板),关闭布局并仅渲染模板:
class FooController extends Zend_Controller_Action
{
public function barAction()
{
if($this->getRequest->isXmlHttpRequest()) {
$this->_helper->layout->disableLayout();
}
// normal logic goes here
}
}
然后在视图中,标签的代码看起来与此类似:
<script>
$(function() {
$( "#tabs" ).tabs({
ajaxOptions: {
error: function( xhr, status, index, anchor ) {
$( anchor.hash ).html(
"Couldn't load this tab. We'll try to fix this as soon as possible. " +
"If this wouldn't be a demo." );
}
}
});
});
</script>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Preloaded</a></li>
<li><a href="<?php echo $this->url(array("controller" => "foo", "action" => "bar"), "default", "true") ?>">Tab loaded by ajax</a></li>
</ul>
<div id="tabs-1">
<p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
</div>