问题已解决,这是一个特定的 web2py 问题。
def FirstAjax():
    session.forget(response) # unlock the session file
    [rest of code]
与 web2py 对话以不锁定会话文件,以便第二个 ajax 可以立即启动。另一种方法是设置:
session.connect(request, response, db)
在您的模型中,这意味着会话不会保存在文件中,而是保存在您的 DAL“db”中,因此该会话不会被锁定。
这两种解决方案对于我的需要是相同的。
在我的情况下,我还需要在按下后退按钮时进行设备释放,只需添加一个要在轮询周期中检查的标志,例如:
def FirstAjax():
    session.forget(response) # unlock the session file
    HSCAN.SetLeave(False)
    HSCAN.PollingCycle()
    #Rest of code    
def SecondAjax():
    HSCAN.SetLeave(True)
    #Rest of code 
class myHandScanner():
    def __init__(self):
        self.leave = False
    def SetLeave(self, leave):
        self.leave = leave
    def PollingCycle(self):
        while True:
            if self.leave:
                #Do device release
                return
            if something is read:
                val = something
                break
        #Do device release
        return val
谢谢大家,希望这会有所帮助!