从零开始创建单页应用程序

5
我一直在开发单页面应用程序(类似TiddlyWiki)。
我已经很久没做过严肃的网页设计了。上次我建立一个大网站是在CSS、JavaScript、HTML5之前,那时候我主要使用PHP编写了许多CGI脚本。这些年来,我学过新的技术片段,但没有组织过。
我认为现在是回到基础并逐步制作更加复杂的页面或网站的时候了——从HTML开始,逐步添加CSS、JavaScript、HTML5函数等等......
这让我想起是否有任何类似于“Linux from Scratch”这样的教程,但聚焦于“从零开始创建网站?” 或者至少有一系列教程,从HTML hello world开始,逐步以逻辑方式添加功能?
谢谢!

我真的非常喜欢这个课程,它会教你许多重要的知识,并且充满了有用的技巧。 - Fallup
我正在考虑为此目的创建一个网站。作为一名大学生,我与许多有志成为网络开发人员的人合作过,他们不知道从哪里开始。我想也许可以从设计方面开始(HTML + CSS),然后进展到使用PHP和MySQL进行数据管理,最后将JavaScript和jQuery融入到网站中。教授人们代码本身并不像教授人们如何使用它那样重要。我觉得覆盖所有主要网络开发方面的渐进式课程对所有新手都非常有帮助。你有什么想法? - Charles
这肯定会很有用。HTML以前很容易 - <DOCTYPE><HEAD>..</HEAD><BODY> ... <.BODY> - 结构和内容。现在有XML、HTML5、XHTML5、CSS、JavaScript以及许多可以选择的库。逐步构建基本的HTML hello world,添加一些CSS,添加一些JavaScript,添加一些更多的功能等等将非常有用。特别是在构建可以独立运行的小部件和Web应用程序的情况下。也许只有我这样认为。 - Miles Fidelman
我刚发现的一件非常有用的事情是“HTML5 Boilerplate”(html5boilerplate.com),它为使用所有现代HTML5,CSS和JS功能的应用程序提供了一个“骨架”。 它有很好的文档,并为从“Hello,World”到逐渐复杂的页面/站点提供了良好的起点。 在http://weblogs.asp.net/dwahlin/archive/2011/06/05/getting-started-using-html5-boilerplate.aspx上还有不错的介绍。 - Miles Fidelman
5个回答

8
Personally 我建议您先学习 HTML 和 CSS,掌握它们并使其正常工作,然后再考虑 JavaScript(尤其是在考虑单页应用之前!)。以下是我最近为某个人写的一份小指南,希望对您有所帮助:
要成为 CSS 大师,您必须考虑并理解以下几个方面(按我的主观看法排序):
1. 选择器 2. 层叠性 3. 优先级 4. 盒模型 5. 定位/浮动 6. HTML
选择器可以让您在页面上定位元素。如果没有选择器,除了将样式规则直接添加到元素中(不好的做法!),您几乎无法进行任何操作。因此,这是一个很好的起点。请理解选择器的工作原理及其支持情况。 下一件需要了解的事情是最重要的主题之一,它可以避免您不必要地编写过多的CSS——层叠! 特异性确定了应用于给定元素的规则。大多数情况下,可以避免使用它,并且可以继续无知地进行,但是了解它将使您的选择器更加明智,并防止您与自己展开竞争,通过向选择器添加更多的 ID 来使样式应用(如果这没有意义,那么您不理解特异性,请继续阅读!) 每当我和人们谈论CSS时,大多数人都理解字体样式、背景等基本概念。那是因为这些都是简单的东西;-) 人们似乎总是在理解定位和浮动方面遇到麻烦。这两个概念都与“盒子模型”相关,所以首先要学习它,然后再进入定位和浮动的学习:

如果你的思维有些混乱,不用担心,它们是相当令人困惑的概念!

但是没有标记的CSS有什么用呢?或者说,没有好的HTML,好的CSS有什么用呢?我认为,要对CSS有一个好的理解,就必须对HTML有一个好的理解。以下网站包含了大量关于HTML的信息:

它们可能对初学者来说有些深奥,因此我还强烈推荐以下书籍:

他们都向您展示如何编写良好的语义化标记并使用CSS进行样式设计,以创建出色的结果。我知道,在这个时代,当你拥有互联网时,谁还需要书籍呢?!但是这些书籍非常棒,绝对值得花费。

一些不太针对性的建议,但对于一般的CSS/HTML学习是很好的资源:

最后一件事——网络的一个巨大优势是,所有网站都是有效的开源*,因为您可以查看网站的所有CSS / HTML / JS。下次你看到有趣的东西,只需打开Firebug并尝试理解正在发生的事情,更改值,查看其效果。看看其他人如何组织标记,如何样式化内容,将哪些功能委托给JavaScript而不是CSS等。

在了解了以上内容之后,您可能会想尝试一些尖端的CSS。以下是用于玩弄某些CSS3技术的便捷网站:

这就是我目前所能想到的一切!当然,就像掌握任何技能一样,重要的不是你读了多少,而是你实践了多少。只有当您在实践中与这些问题作斗争时,您才能真正获得洞察力并加强自己的心智模型。

至于JavaScript,假设您了解一些编程知识(考虑到您提到了CGI和PHP),我强烈建议观看一些Douglas Crockford的视频,可以在此处找到:

Crockford 是 JavaScript 的大师,他发明了 JSON 并开始了 JSLint,做出了一些重大的进展。 YUI 剧院视频非常出色,内容详尽 :)

1

对于一些工具和“调试”以及查看您的内容是否有效,我建议使用:JSfiddle

此外,w3schools 对于这些概念的基本理解非常有帮助。

CodeAcademy 的 HTML5 和 Javascript 课程也可能对您有所帮助。

http://www.codeavengers.com/

很多东西仍然是一样的,只不过 CSS 和 JS 添加了更多功能,HTML5 添加了更多元素标签。
如果我在你的位置上,我会先制作一个基本网站,然后在跟随教程的同时慢慢添加新功能,尝试让它变成自己的风格。

0

如果你还在寻找2020年的起点,我最近写了一篇关于从零开始构建Web应用程序时需要考虑哪些事项的文章Building Web App from scratch

虽然不完全符合你的要求,但我认为这是一个很好的更新起点。

祝一切顺利, Max


谢谢。不确定它如何适用于单页Web应用程序,比如TiddlyWiki,但这是有用的信息。 - Miles Fidelman
@MilesFidelman,也许这篇文章包含了比你在TiddlyWiki应用程序中需要的更多内容,但它包括了所有基础知识和需要考虑的东西,以确保你的Web应用程序能够扩展。我希望它对你有所帮助。 - Max Tomasello
实际上,情况恰恰相反。传统的Web应用程序基本上是服务器端的前端,这很容易实现。但将内容推送到本地应用程序的同步副本(尤其是在浏览器沙盒中运行)则有些棘手。 - Miles Fidelman

0

0

如果你想制作一个SPA,让我建议一种完全不同的方法,你不一定要从HTML/CSS层面开始:www.amber-lang.net

“Amber语言深受Smalltalk启发。它旨在使客户端开发更快、更容易。Amber包括一个带有类浏览器、工作区、单元测试运行器、记录、对象检查器和调试器的实时开发环境。

Amber是用自身编写的,包括编译器,并编译成高效的JavaScript,与JS等效地进行映射。”

去看看吧,真的很酷。


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