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

时间:2009-12-28 09:28:32

标签: javascript ajax

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

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

<div id="header"></div>
<div id="leftSideBar"></div>
(...)

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

$.get("header.html", function(html) { $("#header").html(html); });
// ....

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

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

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

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

感谢您的见解,

拉​​拉

3 个答案:

答案 0 :(得分:5)

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

<?php include 'other_file.php'; ?>

使用javascript执行此操作会导致糟糕的搜索引擎优化,并且页面的加载对于最终用户来说可能看起来很奇怪。如果你真的不想使用后端语言some IDE have a way to handle templates,你可以调查一下。

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

以下是使用Rails的示例:

<html>
...
<div id="content"> <%= yield %> </div>
...
</html>

此处子页面的所有内容都将进入“yield”。这是一个link,可以了解更多信息。

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

答案 1 :(得分:1)

在某种程度上,它取决于您在服务器端使用的内容来呈现页面。如果您使用服务器端脚本生成页面,您应该能够使用Web框架(例如DjangoRubyOnRails),甚至只能使用基本的模板引擎,例如Genshi。基本包含功能甚至可以内置到您正在使用的语言中(即PHP)

如果它只是静态HTML,您可能需要考虑设置某种形式的服务器端包括Apache SSINGINX SSI。您需要选择适用于您正在使用的服务器的那个,并且您需要足够的访问权限来安装和配置插件或模块。

或者,您可能希望使用脚本来生成页面(编辑,生成和部署)。使用cat / sed / awk / make(其他有用的参考 - Sed & Awk)的简单方法可能就是您所需要的,或者您可能想要使用模板引擎和PythonPerl等语言。

答案 2 :(得分:0)

我的包含处理服务器端,这意味着来自客户端的请求更少,也可能有其他好处(更容易调试js等)。

拥有服务器进程包括真的不会给它带来很大的压力。