我正在构建基于网络的照片和文字编辑器。我运行的问题最好用一个例子来说明:
用户可以为其文本选择颜色。通过拖动滑块选择颜色,因此每秒更改100次。必须在数据库中更新文本的颜色。我没有每秒执行100次写入,而是按照以下方式构建:在不滑动3秒后,数据库会更新。
用户还可以查看其“'页面”的示例。该示例完全由html和css生成,它从数据库中读取。但是,如果用户试图查看他的示例在3秒内更改文本颜色,他会在示例中看到错误的颜色。
有人对处理这样的问题有好主意吗?我正在考虑以某种方式缓存,但我没有很多经验,并且无法想象解决方案。
我正在使用Zend Framework和jQuery。
答案 0 :(得分:1)
是滑块JQuery UI吗?如果是,您可以将数据库调用绑定到滑块的“slidechange”事件,以确保用户已停止滑动。
http://jqueryui.com/demos/slider/#events
也许您还应该考虑根据输入表单中的值而不是数据库中的值来构建示例页面。即使你进行数据库调用,它(理论上)也可能在加载示例页面之前没有完成更新数据库中的值。
答案 1 :(得分:0)
您可以更改它,以便在以下情况下更改事物会将排队的“持久性”事件发送到服务器:
因此,如果用户快速进行1,2或22次更改,他们会排队等候,然后一次性发送(后端也可能足够聪明,可以忽略4个“改变颜色”事件中的3个并且只保留最新的一个)。