我正在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
答案 0 :(得分:1)
这是一个可怕的想法,因为它不起作用。或者更糟糕的是,当您的请求碰巧碰到同一个实例时,它似乎有时可能会起作用,但是否则无法正常工作。
将数据存储在数据存储区/内存缓存中的实体中(如果使用ndb,它将自动放入内存缓存中),并使用get()获取每个连续请求的数据。
替代方法是使用会话,或者将cookie中的数据返回给客户端,以便在下次请求时将其发送回服务器(尽管这会不安全地允许客户端修改该值)。