我正在编写完整的基于 AJAX 的网站。现在我正在做页面导航和内容显示而无需重新加载页面。这就是我决定这样做的方式:
<html>
<head>
<!--CSS-->
.hidden {display:none;}
</head>
<body>
<!--Menu bar-->
<a href="link_to_real_page_for_JS-disabled-users" onclick="loadPage1(); return false;">Page1</a>
<a href="link_to_real_page_for_JS-disabled-users" onclick="loadPage2(); return false;">Page2</a>
<a href="link_to_real_page_for_JS-disabled-users" onclick="loadPage3(); return false;">Page3</a>
<!--Content blocks for different pages-->
<div class="current" id="page1">
<!--Page 1 content-->
</div>
<div class="hidden" id="page2">
<!--Page 2 content-->
</div>
<div class="hidden" id="page3">
<!--Page 3 content-->
</div>
<!--JS for managing pages links-->
<script>
$(document).ready(function() {
});
function loadPage1() {
$('.current').hide();
$('#page1').show().addClass('current');
};
function loadPage2() {
$('.current').hide();
$('#page2').show().addClass('current');
};
function loadPage3() {
$('.current').hide();
$('#page2').show().addClass('current');
};
</script>
</body>
1)首先,我们显示具有“当前”类的 page1 块,其他块具有“隐藏”类 2)当我们单击 loadPage2() 时,我们找到当前活动块(通过它的“当前”类)并将其隐藏,和显示 page2 块。
注意。我必须为第一个页面块使用隐藏的附加类,因为 $(document).ready(function() {$('#page2').hide();$('#page3').hide();} ); 似乎有点慢,用户可能会在页面完全加载之前注意到一些奇怪的事情。
虽然我的解决方案有效,但也存在一些问题:
* 1) *实际上,对于JS禁用的用户,我仍然需要做真实的页面,只是显示不同的开始块。这意味着我将不得不做很多相似的页面,但有一个区别——隐藏和显示不同的起始块。如果 Google 抓取我的网站,它不会认为我的网站内容加倍并禁止它吗?
* 2) *例如,第 2 页有大图。当页面开始时 - 它是隐藏的。但是,即使一开始不会显示,也需要很长时间才能加载它。如何管理它?按需加载内容?我的意思是创建 6 个模板文本文件,当用户请求页面时,JS 从文件中加载页面内容并将其放入 div?
可能看起来有点乱,但提前谢谢!