服务器端和客户端JavaScript

时间:2011-12-12 14:52:47

标签: javascript node.js frameworks

我很难选择要用于即将进入开发的应用程序的框架。我是一个前端人,而我的朋友正在做后端。

说我正在开发一个简单的待办事项列表应用程序。我有一个todo列表上每个项目的模板。理想情况下,我希望服务器端JavaScript使用此模板以及客户端JavaScript。

因此,在页面加载时,如果数据库中已有5个待办事项,则将在服务器上编译HTML。如果我然后在列表中添加一个新的待办事项,则客户端JS将使用相同的模板编译HTML。

我听过很多关于Node.js,Backbone.js等的讨论。对于这类事情,有多少选项是非常令人难以置信的。有人能举例说明一起使用这些技术吗?

6 个答案:

答案 0 :(得分:10)

Node.js是服务器端的JavaScript,而Backbone.js则用于使用集合,模型和视图优雅地构建前端内容。

两者各有各的作用。为了更好地比较前端框架,您可以查看Addy Osmany的TODO列表,其中有很多内容:https://github.com/addyosmani/todomvc

Backbone网上还有一些不错的教程:
  - http://dailyjs.com/2011/04/04/node-tutorial-19/
  - http://backbonetutorials.com/
  - http://net.tutsplus.com/tutorials/javascript-ajax/getting-started-with-backbone-js/

这是一个将服务器上的Node.js与客户端上的Backbone结合起来的应用程序:

http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/

Backbone(如Node.js)非常受欢迎,因此您可以在线获得大量帮助/资源。

答案 1 :(得分:0)

不确定。查看TodoMVC以更好地了解各种替代方案。

答案 2 :(得分:0)

将模板文件粘贴到页面底部。这样,您的客户端代码可以轻松使用它,而无需调用获取模板。

调用模板时使用JQuery的示例是

<div style="display:none" id="sample_jquery_template">
  Hello ${name}
</div>

在您的客户端javascript代码

..javascript..
person = {name:'Joe'}
$.tmpl($("#sample_jquery_template").html(), person ).appendTo( "#destinationList" );

答案 3 :(得分:0)

有足够的模板解决方案,例如mustache.js两端工作 但是,为了在客户端使用模板,使渲染数据可用是有帮助的。
Henrik Joreteg撰写了a nice article关于重用骨干模型并在客户端和服务器之间进行同步的文章。

答案 4 :(得分:0)

来自雅虎的Dav Glass给出了一个很好的talk,展示了他如何使用node.js在客户端和服务器上运行YUI3。

以下是视频中的github个例子:

您可能也有兴趣查看jsdom

我刚刚开始学习节点,这段视频真的帮助我了解如何在节点上对服务器和客户端进行实验。你会看到他禁用javascript,日历仍然有效 - 这很酷。

这是一个很好的backbone资源:

答案 5 :(得分:0)

您可以查看http://derbyjs.com/#why_not_use_rails_and_backbone

他们在打开网络应用时尝试实现以下目标:

  1. 在第一次请求时传输完全呈现的页面。
  2. 从那时起,所有更改都应直接在客户端进行,并通过ajax同步到服务器。
  3. 因此,通常用户向具有“胖”客户端的网站发出的第一个请求非常痛苦:

    • 必须传输和初始化应用数据
    • 数据必须由客户端
    • 加载
    • 显示数据

    此行为通常比传输旧式学校服务器端呈现页面慢。例如,Gmail或iCloud需要一些时间来加载,因为他们这样做。