【问题标题】:Keeping DRY with progressive enhancement通过渐进增强保持干燥
【发布时间】:2010-07-11 01:54:16
【问题描述】:
我正在使用非常少量的 Javascript 构建一个网站,只是为了向页面添加内容(如联系表单),而无需转到新页面。
我知道无论如何我都应该构建联系页面(以防万一用户没有打开 javascript),然后在他们有 javascript 的情况下使用它。
如果我不想将表单的 HTML 放在两个地方,我应该在哪里存储它?
(平时我不那么挑剔,但我对这个很好奇。)
【问题讨论】:
标签:
dry
progressive-enhancement
【解决方案1】:
如果您可以访问服务器端语言,则可以在外部页面中保留表单的单独 sn-p。然后,您可以通过适当的include 调用将sn-p 包含到HTML 内容页面中。这还有一个额外的好处,即对于您的 JavaScript,您可以使用 AJAX 从这个 sn-p 文件中提取联系表单。事实上,许多插件允许您显示带有 HTML 内容的 DHTML 窗口。例如,查看ThickBox。
如果没有服务器端语言,您可以用框架做类似的事情。当您需要引用它时,只需在框架中显示表单 sn-p 即可。就我个人而言,我不太喜欢框架,所以这对我来说不是一个非常有吸引力的解决方案,但如果你选择(并适当地设计框架),你可以使用它。
【解决方案2】:
只需将您的联系表单的 HTML 放在 .html 文件中即可。假设您使用的是 PHP 或其他东西,只需将文件包含在您的联系页面中,并将其包含在您的动态联系表单部分中。表单仍应提交到相同的服务器端页面并具有相同的外观和感觉。
例如contactForm.html
<div class="contact-form">
<input ....>
</div>