我覺得需要允許瀏覽器後退按鈕工作,以及允許用戶將他們看到的內容加入書籤。如何在ZF上通過Ajax調用實現「Deep Link」?
我在Zend路線上不是多功能的,但是現在我無法改變它。
這是Ajax實現的辦法,我使用:
class TestController extends Zend_Controller_Action {
public function init()
{
/* Initialize action controller here */
if ($this->getRequest()->isXMLHttpRequest()) {
$this->_helper->layout()->setLayout('blank');
$logger = $this->getInvokeArg('bootstrap')->getResource('Log');
$logger->debug('AJAX Call');
}
}
public function indexAction()
{
// render the default page
}
public function somethingelseAction()
{
// do something else render something.
}
}
有我的初步看法渲染目標DIV,以及一些鏈接...這是我的指標。 phtml:
<h1>Tests...</h1>
<a class="ajaxloader"
href="<?php echo $this->url(array('controller'=> 'test', 'action' => 'speed'), null, true);?>">Speed</a>
<a class="ajaxloader"
href="<?php echo $this->url(array('controller'=> 'test', 'action' => 'somethingelse'), null, true);?>">Something Else</a>
<div id="testresults">
<h1>Default stuff to show.</h1>
</div>
一些jQuery代碼附加到這些'ajaxloader'鏈接並將結果定位到'testresults'div。
$(function() {
$('.ajaxloader').click(function(event) {
var target = $(this).attr('href');
window.location.hash = target;
$('#testresults').fadeOut('slow', function() {
// complete fadeout, load new content while it's hiding!
$.ajax({
url : target,
success : function(data) {
$('#testresults').html(data);
$('#testresults').fadeIn();
}
});
});
return false;
})
});
這裏如何實現深層鏈接?
非常感謝, MEM
PS - 好信貸這個實現去達里爾E.克拉克。 我可以採取壞的。
其他人都讀過這個問題,並認爲'好吧,如果你可以使用選擇公理'會更容易?沒有?好吧,只有我。 – 2010-11-30 14:23:08