【问题标题】:Can ajax make a web application stateful?ajax 可以使 Web 应用程序有状态吗?
【发布时间】:2013-07-24 02:46:35
【问题描述】:

Ajax 无需刷新即可在浏览器上返回信息。这是否意味着它将 ID 存储在会话/有状态行为中?我没有看到基于 Ajax 的 Web 应用程序中的 URL 有任何变化。我正在查看的示例是-http://evolvingweb.github.io/ajax-solr/examples/reuters/index.html。我正在尝试比较在 ASP.NET MVC 中开发的无状态 UI 与在 javascript 框架中使用 ajax 开发的 UI

【问题讨论】:

    标签: javascript ajax asp.net-mvc stateless stateful


    【解决方案1】:

    HTTP 是一种无状态协议。来自Http RFC

    超文本传输​​协议 (HTTP) 是一个应用层 分布式、协作、超媒体信息协议 系统。它是一个通用的、无状态的协议,可用于 除了用于超文本之外的许多任务,例如名称服务器和 分布式对象管理系统,通过扩展其 请求方法、错误代码和标头。 HTTP 的一个特点是 输入和协商数据表示,允许系统 独立于正在传输的数据构建。

    Ajax 并非您所想的那样: 来自W3C

    AJAX = 异步 JavaScript 和 XML。

    AJAX 是一种用于创建快速和动态网页的技术。

    AJAX 允许通过交换小的内容来异步更新网页 后台服务器的大量数据。这意味着它 可以更新网页的部分内容,而无需重新加载整个网页 页面。

    经典网页,(不使用 AJAX)必须重新加载整个页面 如果内容应该改变。

    ASP.NET State Management 可以使用 Cookies、Session、Browser Cache(HTML5 为今天的缓存提供浏览器数据库)、Profile、SQL Server 缓存、QueryStrings、HiddenFields 来完成。

    构建响应用户的 Web 应用程序是一种新趋势,SPA(单页应用程序)使用 JavaScript 中构建的 Ajax 和 MVVM 框架提供了出色的用户体验。

    SPA 背后的人,使用 Microsoft ASP.NET MVC,是 Jonh Papa

    【讨论】:

    • 你好,法尔斯!感谢您的答复!当 Web 应用程序使用 AJAX 技术时,它会使其成为有状态的吗?
    • 仍然是无状态的,你读过 awnsear 吗?讲 AJAX 的部分说明了 AJAX 是什么!
    • 当您提到“通过交换少量数据”时 - 您能详细说明一下吗?它如何交换数据?它不会在 URL 中传递 ID,那么它如何交换呢?
    • 这意味着:你将调用服务器中的某些东西(主要是 WebService、RestFul Service)给你一部分 HTML、或 JSON 或 XML,然后用它来向客户端显示数据浏览器!您可以使用 JavaScript 来操作这些数据,更改 HTML DOM 以提供新的 HTML 或更改 HTML 以显示它。这意味着,客户端只会在浏览器中看到部分更新,而不是整个页面的重新加载。
    • 所以 AJAX 总是通过 Web 服务与 Web 服务器通信?
    【解决方案2】:

    我会说,是的,它确实使页面有状态。

    据我了解,您可以:
    设置一个javascript变量myGlobal = "current value"
    然后删除例如“<div id='content'>”并将其替换为新内容,
    并且变量myGlobal 仍然可以使用,并且它的值将保持不变。

    这对我来说似乎是一种状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-30
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      相关资源
      最近更新 更多