论坛首页 Web前端技术论坛

日志式更新在ajax程序中的应用

浏览 1664 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-16  
YUI
所谓日志式更新是我自己命名的,不知恰当与否。
首先看两个网站:
http://www.workflowy.com
http://www.uxu123.com

前者是美国的一个网站,后者是国内的网站,前者基于jquery,后者基于yui。
这种程序不像博客,博客是你写好文章之后按“确定”开始ajax保存,然后给用户一个反馈,保存成功与否。

这种程序随着你的键盘运动,需要不停的保存条目,如果通过ajax保存,由于网络的延时,会带来非常糟糕的用户体验。所以用日志式保存比较便利。

javascript在客户端记录用户的操作,比如添加,修改,删除,然后定时将这些操作发送到服务器,服务器可以异步地处理这些动作。以下片段是“有序”站点的同步数据:

changeDelta:	[{"uuid":"137d8fdc-cf8e-4c97-9e84-4f2a03d8382f","uid":9002,"title":"","note":"","path":"e8ccf5fd-428c-4058-b1b2-01ce96f460e8","dp":"e8ccf5fd-428c-4058-b1b2-01ce96f460e8","done":false,"position":393216,"open":false,"shareType":"none","action":"add","mid":"137d8fdc-cf8e-4c97-9e84-4f2a03d8382f"},{"dp":{"newVal":"nop","prevVal":"e8ccf5fd-428c-4058-b1b2-01ce96f460e8","src":null},"path":{"newVal":"","prevVal":"e8ccf5fd-428c-4058-b1b2-01ce96f460e8","src":null},"mid":"137d8fdc-cf8e-4c97-9e84-4f2a03d8382f","action":"modify","uid":9002,"touchedpath":"","title":{"newVal":"123","prevVal":"12","src":null}}]


把这个日志式的数据保存在服务器,然后通过回放更新到条目的数据表中。这个日志可以在不同的浏览器之间交换,重新播放,达到同步更新的目的。

比如,你可以用3个不同的浏览器打开“有序”,用同一个用户登录,当你在一个浏览器里面修改时,会产生这些日志条目,这些条目发送到服务器,并且在另外两个浏览器中重播,达到同步的目的。

请注意,这个同步不需要你刷新浏览器,你可以在一个浏览器中快速修改,然后切换到另外一个浏览器,仔细观察,随着更新周期的到来,屏幕上就像是播放动画一样,同步起来。
   发表时间:2012-02-21  
日志式更新同时提供了类似word的undo和redo功能,你可以任意更改条目,包括位置,添加,删除都可以反悔和重做。请看演示:

http://www.uxu123.com/workflow.html?random=1329830626810#item=e1b7b88d-7374-407a-92c5-5b7b3f7d1a63&shared=true
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics