ブラウザの戻るボタンを機能させ、ユーザーが見たものをブックマークできるようにする必要があると感じています。
私は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といくつかのリンクでレンダリングします...これが私のindex.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>
これらの「ajaxloader」リンクにアタッチし、結果を「testresults」divにターゲティングするjQueryコード。
$(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-この実装の良い功績はDarrylE.Clarkeにあります。私は悪いものを取ることができます。