帧的替代品是什么?

时间:2011-04-29 16:27:04

标签: html iframe frame

假设我有一个包含50个网页的网站。每页包含

  1. 标题
  2. 导航
  3. 左侧内容
  4. 右侧内容
  5. 页脚
  6. 不使用

    1. 服务器端编程
    2. 第三方工具和软件
    3. 框架
    4. 我需要在这50个页面的每一个中为这5个部分中的每个部分添加代码(HTML标记)吗? “Code Once,Use Again& Again”这个词怎么了?另外如果我想改变任何东西,我需要在50个地方改变它。这只是简化。我可以这样使用吗。

      <object type="text/html" height="100%" width="100%" data="header.html"></object>
      

      请原谅我的愚蠢问题。学习硬道!

5 个答案:

答案 0 :(得分:4)

  

我需要在这50个页面的每一个中为这5个部分中的每个部分添加代码(HTML标记)吗?

  

“Code Once,Use Again&amp; Again”这个词怎么了?

你拒绝了在HTML中实现这一切的所有技术(好吧,除非你算从头开始编写自己的模板引擎(没有第三方工具)并在构建时运行它而不是按需(没有服务器端代码),或者使用JavaScript(这是疯狂的))。

  

我可以这样使用吗? <object type="text/html" height="100%" width="100%" data="header.html"></object>

这实际上是<iframe>,只是功能更少,浏览器支持更少。

答案 1 :(得分:2)

您描述了服务器端语言的确切用例。

让我用你的方法解释你的问题。如果您以这种方式建立自己的网站,通过index.htmlobject添加iframe以及其他5个部分,这将意味着向您的服务器发出6个请求(当然不是好的做法)。

事情会发生这样:

  • 浏览器会请求index.html
  • 解析它并发现它还需要请求header.html和其他四个
  • 从服务器请求所有这5个htmls

相反,您可以只请求index.php(如果您使用PHP),让PHP构建 ONE HTML资源(可能包括其他PHP文件,如header.php)并将其发送到浏览器,它将很乐意显示它。

您不必破坏您的学习顺序,仅为此特定目的使用一些小部件(根本只使用一个命令)。要灵活,你会发现它在这项业务中非常有用:)。

举个例子:

的index.php

<!DOCTYPE html>
<html>
...
<body>

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

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

...

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

</body>
</html>

在PHP文件中,您只能使用简单的HTML,只有文件扩展名会有所不同。要编写PHP命令,可以使用<?php whatever ?>

答案 2 :(得分:1)

您还可以通过组合不同的部分来实现目标,这意味着您将标题写在一个文件中,导航到另一个文件,内容到第三个文件,然后将它们组合到实际的网页中。 (基本上制作自己的模板引擎)。如(在UNIX中)

cat header.html navigation.html body1.html > page1.html

不是理想的解决方案,但这样你只需要改变一次。但是对于任何真实的东西,已经建议的服务器端脚本通常是最好的选择。

答案 3 :(得分:0)

如果您不想使用服务器端编程(这是为了您而构建的),您唯一的选择是在运行时填充公共元素的AJAX调用。

然而,这不会提供非常好的用户体验,因为页面在完成加载后会慢慢加载。

真的应该使用服务器端编程。

答案 4 :(得分:0)

一个常见的解决方案是服务器端包含(SSI),它允许您在多个页面(包括其他内容)中包含一个html标记块。如果您使用的是PHP,请务必考虑PHP包括:http://www.w3schools.com/php/php_includes.asp