新框架是什么?

8

看起来我在网站创建方面有些过时了。

几年前,我学会了使用框架创建简单的网站。

然而,这种解决方案被w3school.com不鼓励使用,并且在未来的HTML版本中将不再支持框架。

那么有哪些简单的替代品呢?

  • iFrames似乎也被大多数开发者不鼓励使用
  • PHP似乎提供了一种解决方案?在PHP中用什么简单的方法来替换框架?
  • 如果我不使用PHP(实际上我需要在一个JavaEE项目中使用),那么我该如何创建类似框架的网站?

简而言之:如何现在创建一个好看的(类似框架的)网站?


这要看情况。你是在使用服务端语言(如Python、PHP、Ruby等),还是纯粹地使用HTML工作? - Blender
你使用过框架吗?它们为你做了什么? - Oded
1
好看的边框不存在,那种风格在90年代就过时了。 - cHao
2
老但仍然有趣:http://www.zark.com/headscape/frames.html - Oded
4
有导航的解决方案(请参阅HTML 5中的nav元素)。使用框架,您将失去深度链接的能力,因为整个网站具有相同的地址-这是它们不再被推荐的一个很好的理由。 - Oded
显示剩余5条评论
3个回答

15

一般而言:

视觉效果

CSS。有许多技术可以布局内容(具体效果取决于您想要的效果,Holy Grail 是一个常见的需求)。

overflow 属性 可以处理页面的滚动子部分,尽管认为始终占用屏幕空间的菜单是一个好主意的设计师通常是错误的。

避免重复的元内容

(即将基本结构、导航菜单等放在每个页面上,而不需要复制粘贴它们)

一个模板系统(或者一个包含系统),可以在服务器端(最常见的)或者在构建时运行(可以支持只允许静态文件的HTTP服务器)。

这个实现所用的语言并不重要,PHP很常见,Java也是一个选择,我倾向于使用Perl(更具体地说是Template Toolkit),还有许多其他语言。JavaScript在这种工作中变得越来越流行,有一些工具,如assemble可供使用。你可以使用静态网站生成器来完成整个过程。
使用搜索引擎查找流行的模板语言或包含系统,以适应您选择的编程语言。

在不离开页面的情况下加载新内容

JavaScript通常使用XMLHttpRequest对象(技术称为Ajax),并与History API结合使用(因此书签和链接仍然有效)进行(如果您正在进行严格的内容更改)。 Github是一个很好的例子。有各种框架,如ReactAngular,试图使事情变得更容易。请注意有限的浏览器支持和所有其他可能导致JS文件失败的事情,这使得使用良好的设计原则至关重要。使这些事物强大的一种方法是编写同构JS

1
如何在不重复编写代码的情况下更改侧边栏的过去“内容框架”,同时保留“导航框架”不变?我现在仍然看到一些网站使用这两个组件(也许现在有其他词语来描述它们)。 - Arian
1
@Coretek — 通常会使用模板系统。这个是谷歌排名最高的(适用于Java领域)。我通常使用TT - Quentin
1
@Coretek - Java可能有由Oracle维护的模板语言,我不确定。通常避免使用非语言供应商编写的库并不是一个有用的目标。 - Quentin
1
@Coretek - PHP可以说是一个模板语言(尽管如果我必须使用PHP,我会考虑使用更好的模板语言,比如Smarty,在我最后一次认真研究PHP时,它非常流行)。不要为了“精简”而避免使用第三方代码-你要么最终编写出相同但效果不佳且需要更多时间投入的代码,要么发现其他的低效率。 - Quentin
1
JavaEE相对复杂。PHP便宜且易用。因此,你可以得到许多支持PHP的廉价主机。一旦你找到好的托管服务,你就会有更多选择。选择虚拟机,你可以安装任何你喜欢的东西。 - Quentin
显示剩余7条评论

4

框架不会被新的“技术”所取代。现在的前沿技术是将所有内容放入同一文档中,并通过CSS来进行样式设计。当然,服务器端包含可以帮助您实现此目标。


2
使用CSS定位创建类似框架的界面,并使用AJAX更改容器的内容。您可以使用JavaScript框架,如jQuery},{{link4:PrototypeMooTools来处理AJAX请求。
然而,如果您想包含来自另一个域的内容,则必须使用<iframe>,因为AJAX遵循同源策略
如果要编写DRY(不重复自己)代码,可以使用某种模板系统(PHP、Ruby、Pearl、Python - 当然还有这些语言的框架)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接