0

我正在 GAE 中设置一个应用程序。该应用程序依赖于来自客户端的最多三个连续 AJAX 调用,这些调用在每个请求中生成一个单独的字符串。我想保留和组合服务器端的数据,以便对其进行更多解析。

有人告诉我,使用全局变量真的很糟糕,但我不确定如何在不使用全局变量组合数据的情况下构建这个流程。有什么建议么?我不想进行一次 AJAX 调用,因为我想继续向用户更新进度。抽象地看起来像这样-

finalData = ""

class func1(webapp2.RequestHandler):
    def get(self):
        func1data = some.command()
        global finalData
        finalData += func1data


class func2(webapp2.RequestHandler):
    def get(self):
        func2data = some.command()
        global finalData
        finalData += func2data


class func3(webapp2.RequestHandler):
    def get(self):
        func3data = some.command()
        global finalData
        finalData += func3data
4

1 回答 1

1

这是一个可怕的想法,因为它不会起作用。或者更糟的是,当您的请求碰巧碰到同一个实例时,它有时可能会起作用,但否则它不会起作用。

将数据存储在数据存储/内存缓存中的实体中(如果您使用 ndb,它将自动放入内存缓存),并使用 get() 获取每个连续请求的数据。

替代方法是使用会话,或者将 cookie 中的数据返回给客户端,以便在下一个请求时将其发送回服务器(尽管这会不安全地允许客户端修改值)。

于 2013-05-11T02:50:52.907 回答