2013-05-10 28 views
0

我正在GAE中設置一個應用程序。該應用程序依賴於來自客戶端的多達三個連續的AJAX調用,每個請求中都會生成一個單獨的字符串。我想保留併合並服務器端的數據,以便對其進行更多的解析。在不使用全局變量的情況下GAE中的結構數據流

我被告知使用全局變量真的很糟糕,但我不知道如何構造這個流程,而不使用全局變量來組合數據。有什麼建議麼?我不想單獨做一個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

在GAE python服務器中,全局變量可能存在問題,因爲它們有點持久。即使在會議結束後,全球價值也可以持續存在。因此,新用戶可能可能會獲得其他用戶的全局數據。討厭...下面的答案是最好的選擇。數據存儲/內存緩存。 – rGil 2013-05-11 02:55:58

回答

1

這是一個可怕的想法,因爲它不會工作。或者更糟糕的是,當您的請求碰巧碰到同一個實例時,它有時可能會有效,但否則無法工作。

將數據存儲在數據存儲/ memcache中的實體中(如果使用ndb,它將自動放入memcache中),並使用get()獲取每個連續請求中的數據。

替代方案是使用會話,或者將cookie中的數據返回給客戶端,以便在下一個請求時發送回服務器(儘管這會不安全地允許客戶端修改該值)。

相關問題