什么是新框架? [关闭]
Posted
技术标签:
【中文标题】什么是新框架? [关闭]【英文标题】:What are the new frames? [closed] 【发布时间】:2012-03-16 23:59:19 【问题描述】:看来我在网站创建方面有点过时了。
几年前,我学会了用框架创建简单的网站。
然而,w3school.com 不鼓励这种解决方案,并且在未来的 html 版本中不再支持框架。
那么简单的替换是什么?
iFrame 似乎也受到大多数开发人员的反对 php 似乎提供了解决方案? php中替换框架的简单方法是什么? 如果我不使用php(实际上我需要在一个项目中使用JavaEE),如何创建类似框架的网站?Short:现在如何创建一个好看(类似框架)的网站?
【问题讨论】:
视情况而定。您使用的是服务器端语言(Python、PHP、Ruby 等)还是使用纯 HTML? 你用什么框架?他们为你做了什么? 没有好看的镜框。这种风格在 90 年代就消失了。 老作者还是很有趣:zark.com/headscape/frames.html 有导航解决方案(参见 HTML 5 中的nav
元素)。使用框架,您将失去深度链接的能力,因为整个站点具有相同的地址 - 这是不再推荐它们的一个很好的理由。
【参考方案1】:
一般来说:
视觉上
CSS。有许多 techniques 用于布局内容(取决于您想要的精确效果,Holy Grail 是一个共同的愿望)。
The overflow
properties 处理页面的滚动子部分,尽管那些认为让菜单一直占用屏幕空间是个好主意的设计师通常是错误的。
避免重复元内容
(即在每个页面上放置基本结构、导航菜单等内容,无需复制/粘贴)
在服务器端(最常见)或在构建时(可以支持只允许静态文件的 HTTP 服务器)运行的模板系统(或包含系统)。
实现这一点的语言无关紧要,PHP 和垃圾一样普遍,Java 是一种选择,我倾向于 Perl(更具体地说:Template Toolkit),还有很多其他的。 javascript 在这类工作中变得越来越流行,assemble 等工具变得可用。 a static site generator可以一路走好。
使用搜索引擎查找流行的模板语言或包含您选择的编程语言的系统。
在不离开页面的情况下加载新内容
JavaScript,通常与XMLHttpRequest 对象(被称为Ajax 的技术)一起使用,并且(如果您正在做严重的内容更改)与the History API 结合使用(因此书签和链接仍然有效)。 Github 是a good example of this。有各种框架,例如 React 和 Angular,它们试图让事情变得更容易。注意limited browser support 和所有其他可能导致 JS 归档的东西都使用good design principles essential。使这些东西变得健壮的一种方法是编写Isomorphic JS。
【讨论】:
那么如何改变一侧过去的“内容框架”并保持“导航框架”不变,而不编写重复的代码呢?我现在仍然看到有这两个组件的网站(也许现在还有其他词) @Coretek — 通常使用模板系统。 This one 是 Google 的佼佼者(Java 领域)。我通常使用TT @Coretek — 可能有一种 Oracle 维护的 Java 模板语言,我不知道。避免由语言供应商以外的人编写的库通常不是一个有用的目标。 @Coretek — PHP 是(可以说)是一种模板语言(尽管如果我必须使用 PHP,我会考虑使用更好的模板语言(Smarty 是蜜蜂上次我认真研究 PHP 时跪下……十年前))。不要仅仅为了“精简”而避免使用第三方代码——你要么最终写出做同样工作的东西(但不是那么好,而且你的时间投入更多),要么你会发现其他的低效率. JavaEE 比较复杂。 PHP 既便宜又容易。所以你会得到很多支持 PHP 的廉价主机。一旦您获得了良好的托管服务,您将获得更多选择。去一个虚拟机,你可以安装任何你喜欢的东西。【参考方案2】:框架不会被新的“技术”取代。最先进的技术是将所有内容放入同一个文档并通过 CSS 设置样式。当然,服务器端包含可以帮助您做到这一点。
【讨论】:
【参考方案3】:使用CSS positioning 创建类似框架的界面,使用AJAX 更改容器的内容。您可以使用 jQuery、Prototype 或 MooTools 等 JavaScript 框架来处理 AJAX 请求。
但是,如果您想包含来自另一个域的内容,则必须使用 <iframe>
,因为 AJAX 遵循 same origin policy。
如果您想编写 DRY(不要重复自己),您可以使用某种模板系统(PHP、Ruby、Pearl、Python - 当然还有这些语言的框架)。
【讨论】:
以上是关于什么是新框架? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章