javascript - Ajax 页面回显与背景 Ajax/直接 HTML 操作?

标签 javascript html ajax master-detail html-manipulation

我进退两难,我真的需要一些建议。 我正在使用 PHP/Smarty/HTML/jQuery 构建一个订购系统。 目前在卖家确认订单的网站上工作。

我需要 3 个 div。

  1. 等待订单 div - 包含一个包含未处理订单的表格
  2. 最后订单 div - 包含一个包含最后处理订单的表格(10-20 行)
  3. Details div - 包含有关订单的信息,以及确认/拒绝的按钮

这是一个典型的 master-detail 情况,只有 master 被分成 2 部分 (1,2),details 在 div 3 中。 自然地,一切都与 javascript/Ajax 连接,因此用户可以获得“实时”的感觉。 等待订单 div 通过 cometd (长轮询)技术填充。

我的难题是如何将 div 与 javascript/ajax 连接起来。我是否应该制作与数据库状态相对应的回显页面并将其完全加载到 div 中。或者我应该只操作表行并仅将 ajax 用于后台数据库调用?

为了让自己更清楚:

选项 1(Ajax 完整页面):

  • 当用户选择等待顺序时,使用 ajax 获取新页面(回显表)并加载到详细信息 div 中
  • 当用户确认/拒绝 div 3 中的订单时,div 1 和 2 使用 ajax 刷新(回显页面,其中的表与 db 中的状态相对应)

选项 2(html 操作/后台 Ajax):

  • 当用户选择等待顺序时,div 3 的元素将填充新值。
  • 当用户确认/拒绝 div3 中的订单时,div 1 中表中的 tr 被删除(背景 ajax 到 db 中的 del),并且相同的 tr 被添加到 div 2 中(背景 ajax 插入到 db)<

那么该走哪条路呢?

最佳答案

这两种方式都可以接受,但 nr 1 不太用户友好,因为重新加载 div 1 和 2。当你将一些东西加载到 div 3 中时,你有它的 id 所以复制/附加 tr 应该是一个问题(并添加颜色,所以用户知道发生了什么)。

如果您选择 2,请记住取消绑定(bind)/绑定(bind)新操作到您的 tr 元素,因为当您将 tr 移动到另一个地方时,它不会触发您之前绑定(bind)的操作。

我可能会和 2 个自己一起去 ;)

附言。使用 ajax 加载器 ( http://ajaxload.info/ ) 添加叠加层,以防止用户中断,同时将数据加载到 div 3。用户也会更快乐,因为他会知道发生了什么事;)

关于javascript - Ajax 页面回显与背景 Ajax/直接 HTML 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4853973/

相关文章:

javascript - 有什么理由不使用加号运算符而不是 Number() 或 parseInt() 来返回数字?

javascript - 调整 DIV 大小时想要流畅的动画 - JavaScript

javascript - 如何强制 HTML 页面的窗口名称?

javascript - 使用 Javascript/jQuery 获取 rotate3d 值

javascript - 以编程方式选择 django-autocomplete-light 中的第一个建议

javascript - Webpack 构建时不包含对等依赖项

javascript - 带下拉菜单的可搜索输入

php - Ajax 程序没有按我的预期运行

php - "413 Request Entity Too Large"用于 AJAX POST 请求但不用于普通文件上传

javascript - 需要根据 .txt 文件中的数据创建 Google 图表