很多工作要做。
基本上,您需要为要通过 ajax 加载的页面创建一个模板,其中仅包含您将在页面更改时更新的内容,所以没有<header>
等。
接下来,请参阅http://doc.silverstripe.com/framework/en/3.1/reference/templates#calling-templates-from-php-code了解如何渲染它们(Director::is_ajax()
这里是你的朋友)。
在客户端,您可能想要使用 jquery 的 ajax 函数并捕获页面上的所有内部链接,并使用 ajax 加载它们。简单的代码示例:
$(document).ready(function(){
$('a').click(function(){
var $a = $(this);
var href = $a.attr('href');
$('body').load(href);
e.preventDefault();
});
});
此代码段将使用 ajax 加载任何链接,并将当前页面的内容替换为<body>
加载的 html。你应该仔细看看 jquery 的 ajax 功能,有很多东西要学:http ://api.jquery.com/category/ajax/
as for your 'sliding background image', what you could do is to prepare 2 containers in your <body>
, one holding the background image, the other for the page's content (to be replaced using ajax). then, whenever a link is clicked, make the ajax call as shown before, then slide the background image.
these are just some pointers into the right direction - as i said before, lots of work to do.
in case you'd like to completely avoid this whole ajax stuff, another option might be to have your page's content inside in iframe - but that's another story.