处理页面的常见"结构"元素的最佳实践?

lar*_*els 1 javascript ajax

非常基本的问题:我正在编写一个包含少量页面的Web应用程序.这些页面具有通常的共享元素:例如,站点的标题/标头和侧栏都出现在所有页面上.HTML是静态的(不是动态生成的,它的"ajaxy-ness"是客户端完成的).

将这些常见元素导入/"包含"到我的页面中的最佳方法是什么?我使用的解决方案是让HTML文件包含空的占位符

<div id="header"></div>
<div id="leftSideBar"></div>
(...)
Run Code Online (Sandbox Code Playgroud)

然后在jquery的$(document).ready()中执行:

$.get("header.html", function(html) { $("#header").html(html); });
// ....
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?我是网络开发的新手.:)

我想我也可以挖出一个"类似宏"的代码生成工具,我将在HTML文件上运行以替换,例如,带有header.html内容的"#header".这样加载页面就需要单个HTML文件的请求,这听起来更好.

实现这一目标的智能方法是什么?我相信这个问题已经解决了一千次.

编辑:服务器端用Python + cherrypy编码.(我假设在做"web 2.0-ish"网络应用时,试图远离动态生成HTML是合理的.如果我错了,请纠正我.正如我所说的,我对这种环境很新.)

感谢您的见解,

拉拉

mar*_*cgg 5

如果要包含文件,请考虑使用某些后端语言,如PHP或ASP.即使这样可行,Javascript也不是真正意义上的.

<?php include 'other_file.php'; ?>
Run Code Online (Sandbox Code Playgroud)

我认为使用javascript执行此操作将会导致搜索结果不佳,并且页面的加载对于最终用户来说可能看起来很奇怪.如果你真的不想使用后端语言,某些IDE有办法处理模板,你可以调查一下.

关于框架,他们中的大多数都有办法处理模板.ASP.NET具有母版页系统,Ruby on Rails具有布局.

这是使用Rails的示例:

<html>
...
<div id="content"> <%= yield %> </div>
...
</html>
Run Code Online (Sandbox Code Playgroud)

这里子页面的所有内容都将进入"yield".这是一个链接,可以了解更多相关信息.

一些框架可以处理多个占位符.

  • 考虑到可访问性,使用javascript来提取内容只是一种错误的方法. (2认同)