代码示例:
没有页面导航:
<body>
<nav>
// Navigation links to the parts of the site.
// Clicking a link calls a javascript function to display the relevant <div>
</nav>
<section id="page1">
// Page 1 content
</section>
<section id="page2">
// Page 2 content
</section>
</body>
页面导航:
// Page1.php:
<body>
<nav>
// Navigation links to parts of the site.
// Act as normal <a> tags, redirecting the browser to the new page
</nav>
<section>
// Page1 content
</section>
</body>
// Page2.php:
<body>
<nav>
// Navigation links to parts of the site.
// Act as normal <a> tags, redirecting the browser to the new page
</nav>
<section>
// Page2 content
</section>
</body>
链接导航优势:
浏览器无需一次性加载整个网站
使用网站无需javascript
提供直接网址以便于导航
似乎是标准的事情
javascript导航的优点:
对于服务器端脚本较重的网站(如我的),最小化页面请求
不需要在不同的地方使用相同的代码(例如<nav>
元素)。在PHP中创建echo_nav_html()
函数不是一个好的解决方案,因为它使IDE环境中的编码变得烦人
初次加载后,网站是超高速的,因为几乎没有任何新请求发送到服务器
哦明智的互联网,对此的任何想法?
或者可能是更优雅的解决方案,提供javascript导航列出的专业人士?
答案 0 :(得分:2)
最好的解决方案是同时做到这两点。
在您的主播上的HREF上有有效链接,但包含加载div的onClick操作并禁用HREF的进度。
了解 graceful degradation 和 progressive enhancement 。
提供非JavaScript代码的原因有很多。并非所有浏览器都支持JavaScript。许多企业网络仍然使用可能无法预测的IE的古老版本,或者他们可能会强制完全禁用JS的配置。
您希望每个人都可以使用您的网站,但为拥有该技术支持该网站的用户提供最佳体验。
答案 1 :(得分:0)
如果您使用大量服务器端代码(假设这意味着动态内容生成/填充),我可能会使用指向其他页面的链接,因为我无法想象加载您可能访问的所有内容初始加载的站点是真正的资源效率,特别是假设不是每个用户都将访问站点的任何部分。
您仍然可以使用javascript,但我只会在实际请求时生成内容;是通过AJAX调用(因此URL被调用)或加载新页面。似乎有点浪费我在运行时加载所有东西......但这只是我。