繁体   English   中英

使用 KnockoutJS/Jquery 在 web 页面之间传递变量的最佳实践

[英]Best Practise for passing variables between web pages with KnockoutJS/Jquery

我正在用 Jquery 在 knockoutJS 中编写一个简单的 web 应用程序。 如果您想象它将由 3 个主要页面组成(还有更多,但请保持简单):

  • 登录页面
  • 客户页面
  • 以前的订单页面

每个页面包含不同的 javascript 包含,并有不同的 CSS styles。 最初我为此使用 ASP MVC,路线如下:

  • /登录
  • /customer/{customerId}
  • /customer/{customerId}/订单/

现在我纯粹使用 KnockoutJS,页面实际上是:

  • 登录.html
  • 客户主页.html
  • 客户订单.html

现在这是问题的症结所在,当我登录时。 我联系了一个 web 服务(旧的 asp mvc 东西暴露为 JSON),然后想将用户重定向到客户页面,但希望他们知道 customerId。

因此,一旦来自登录的 ajax 请求返回有效用户 ID,我将需要以某种方式重定向到带有变量的下一页。 我的思路是:

location.href = "customer-homepage.html?customerId=1";

但是感觉有点脏,我不知道这种方法是否适合 SEO 目的,因为大多数 SEO 重点似乎都在 url 上,所以理想情况下它应该看起来像 asp mvc 路由。

这让我开始考虑也许将它作为一个单页应用程序来做,但使用 hashbang 来重定向,因为我希望能够在页面之间切换而不是做一个完整的回帖。 但是我需要从 memory 中卸载一些 JS/CSS,然后加载更新的东西。

我知道这是一个非常模糊的问题,但据我所知,我的选择是:

  • 使用带有查询字符串数据的重定向请求
  • 使用非常棒的一页应用程序,但需要解决 memory 中现有资源 (JS/CSS) 的卸载问题

我正在构建一个类似的 web 应用程序,我个人认为如果您仍然有三个页面,这将是一个很好的应用程序逻辑分离。 所有淘汰赛所做的基本上是使您的视图(html)变得更加愚蠢(正如 MVVM 所建议的那样)。 并授权您的视图接管用户的交互。

但是您的建议似乎类似于拥有一个具有不同视图模型的视图,这是不被禁止的,但我认为调试这样的应用程序会更加困难。

要将信息输入另一个页面,只需使用 customerId 进行POST ,然后您的服务器端逻辑可以使用该信息来执行应用程序需要的任何操作。

我个人认为这会解决你所有的问题,但话又说回来,这可能不是一个答案,而是一个意见,你决定:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM