1

如果你用谷歌搜索“jQuery mobile basket”,你会发现只有大量关于“jQuery mobile”的书籍和按钮:“添加到购物篮”......

这是我的做法,它只是告诉我这不是好方法(=糟糕的用户交互):

MP = 手机

  1. MP:创建本地购物篮(JavaScript 类)
  2. MP:下载所有产品的整个页面,但隐藏(=不同的页面)。
  3. MP:选择产品时,只改变页面
  4. MP:每次添加产品时,都进行AJAX调用,这样一切都保存在服务器端
  5. MP:每次删除一个产品时,都会进行 AJAX 调用,以便将所有内容都保存在服务器端
  6. 服务器端:将所有内容保留在一个会话中,直到它过期,或者用户在 MP 注册。如果是这样,请在数据库中添加包含所有信息的新记录。

最大的问题是添加或删除时。有时,仅仅进行 Ajax 调用就非常慢,这是不可接受的:您经常添加许多产品,因此您可能不得不等待每个调用。一点都不友好。

我的(未来)网站以这种方式完美运行,我不知道移动版会有这么大的问题。

什么是“移动版”解决方案?

4

2 回答 2

0

您可以将篮子中的任何内容存储在全局变量中。因为在使用普通 jQuery-mobile 转换时不会在页面之间删除变量(仅data-role="page"加载),所以您可以使用此变量来存储项目。我认为 JSON 对象最容易用于存储“篮子”项目的所有属性。

您必须确保您的变量不会被rel="external"某处的某个转换删除。也许您网站上的备份可以针对这些情况提供一些保护。

于 2012-07-17T07:54:11.503 回答
0

可能的实现可以有一个basket结构作为 Javascript 中的全局变量,并将其与服务器端结构同步。

MP 页面上的 JS 代码只能从本地basket结构中添加/删除。

然后可以有一个计时器,以定期使用 Ajax 调用将本地同步basket到服务器。basket

这样,您就不会(更慢!!!)在每次添加/删除时调用 Ajax,而是将增量批量发送到您的服务器。

于 2012-07-17T08:12:26.667 回答