Javascript锁定服务

时间:2015-12-30 01:50:16

标签: web-services web locking

我有一个访问Google电子表格的页面。我想确保多个用户不会同时更改工作表,但我的页面只是使用没有真正服务器组件的前端javascript。显而易见的解决方案是使用锁,但没有服务器API来提供锁,我不确定这是如何工作的。

是否有任何服务可以让我在不需要在服务器上设置内容的情况下进行锁定?

1 个答案:

答案 0 :(得分:0)

虽然根本不是万无一失而不是优雅的解决方案,但您可以尝试在电子表格中使用已知单元作为一种互斥体。在伪代码中:

cell_A: name/id of user, or just a True/False value to specify that an edit is taking place
cell_B: date/time of last update attempt, preferably in UTC

if cell_A is False:
    change cell_A to True (or update with current_user_name)
    change cell_B to current_date_time
    start editing the rest of the spreadsheet
else:
    if cell_B < (current_date_time - acceptable_threshold): //assume prior edit session timed out or another way the edit was left incomplete, so we're OK to continue
        change cell_A to True (or update with current_user_name)
        change cell_B to current_date_time
        start editing the rest of the spreadsheet
    end if  
end if

callback edits_completed:
    change cell_A to False

因此,您仍然使用集中存储的令牌,只需通过Google表格进行管理。祝你好运!