javascript - 当网络应用程序通过 javascript 生成大部分标记时...

标签 javascript jquery asp.net

<分区>

我见过一个网络应用程序,它通过 javascript+ jquery 生成页面的大部分标记。服务器只生成一个只有 1 个 DIV 的网页。其余的通过 javascript+jquery+AJAX 在客户端创建。

这种以 javascript 为中心的方法的优缺点是什么?

最佳答案

优点:

当整个前端都在 javascript 中时,您会获得很大的灵 active 。一切都是动态生成的,更容易按需加载数据。它还使将元素绑定(bind)到数据变得更容易,这允许它们随着服务器上的事情的变化自动更新(不需要用户重新加载他们的浏览器!)。查看 Backbone.js 或 Knockout.js,了解构建重型 JavaScript 应用程序的有趣方法。

走这条路还可以让您的服务器保持非常轻的重量。通常,服务器只需要实现一个简单的 RESTful/JSON 接口(interface)。实际上,前端是一个静态文件,它会调用您的界面。由于您在用户访问网站时异步执行这些调用,因此感觉速度更快,更像 native 应用程序(即 GMail)

另一个好处是让客户端做更多的工作通常可以减少服务器的负载。客户端甚至不会注意到额外的工作,因为它发生得如此之快,但您的服务器可能会欣赏节省下来的费用。如果您精通服务器调用,您还可能会使用更少的带宽。

缺点:

有些人禁用了 javascript(尽管实际上只占用户的一小部分)。此外,在某些极端情况下,浏览器的交叉兼容性可能会更加困难(但 jQuery 使这更容易容忍)。最大的缺点是许多网络爬虫不会爬取您网站上的任何内容,因为爬虫通常不执行 javascript。他们只是解析 html(Google 可能是个异常(exception)?)。

根据我构建网络应用程序的经验,任何面向公众的内容(即营销 Material )都应该是静态内容,以便网络爬虫能够看到它。一旦用户登录到该应用程序,我希望一切都是 100% 客户端,对我的服务器进行 RESTful 调用。

关于javascript - 当网络应用程序通过 javascript 生成大部分标记时...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7035942/

相关文章:

html - 无需放大即可显示移动友好的网页

javascript - Firebase 实时数据库在实际构建中无法在 Ionic iOS 上运行,但可以在实时重新加载中运行

javascript - 实时网络音频输入可以在 Ubuntu 上的 Google Chrome 中使用吗?

javascript - 您可以使用 appendChild 将元素添加到具有动态创建的 id 的 div 中吗?

javascript - 如何获取动态生成的复选框值

javascript - 防止 chrome 扩展进行 ajax 调用

javascript - 当选中 3 个问题中的 3 个单选按钮时,如何显示 div?

javascript - CSS 高度在 Firefox 中不起作用

jquery - Fancybox Youtube参数cc_lang_pref不起作用?

c# - 何时使用 Request.Cookies 而不是 Response.Cookies?