0

我正在构建一个基于网络的照片和文本编辑器。我遇到的问题最好用一个例子来说明:

用户可以为其文本选择颜色。颜色是通过拖动滑块来选择的,因此每秒变化 100 次。文本的颜色必须在数据库中更新。我不是每秒执行 100 次写入,而是像这样构建它:在 3 秒滑动后,更新数据库。

用户还可以查看他们的“页面”示例。该示例纯粹由从数据库中读取的 html 和 css 生成。但是如果用户尝试在更改文本颜色后的3 秒内查看他的示例,他会在示例中看到错误的颜色。

有没有人有处理这样的问题的好主意?我正在考虑以某种方式进行缓存,但我对此没有太多经验,也无法想象解决方案。

我正在使用 Zend 框架和 jQuery。

4

2 回答 2

1

3 秒在 UI 设计中是相当长的时间,所以也许你应该在这里重新考虑你的架构。

滑块是 JQuery UI 吗?如果是,您可以将数据库调用绑定到滑块的“slidechange”事件,以确保用户已停止滑动。

http://jqueryui.com/demos/slider/#events

也许您还应该考虑基于输入表单中的值而不是数据库中的值来构建示例页面。即使您进行数据库调用,它也可能(理论上)在加载示例页面之前尚未完成更新数据库中的值。

于 2012-04-12T11:10:45.857 回答
0

您可以更改它,以便在以下情况下更改事物会引发排队发送到服务器的“持久性”事件:

  • 用户点击保存按钮
  • 用户去预览他的更改
  • x 秒后。

因此,如果用户快速进行 1,2 或 22 次更改,他们将排队,然后一次全部发送(后端也可以足够聪明地忽略 4 个 reudant “更改颜色”事件中的 3 个,并且只保留最新的一个) .

于 2012-04-12T21:07:07.053 回答