2013-03-07 105 views
4

在JavaScript文件中訪問Google App Engine數據存儲區中的信息有哪些選項?在JavaScript文件中訪問Google App Engine數據存儲區中的數據

背景:

我運行在谷歌應用程序引擎,它使用谷歌圖表工具API的應用程序。我想要繪製的所有數據都位於Google App Engine數據存儲區中。

我已經試過

我可以在我的Python腳本中訪問數據。另外,在python腳本中,我將數據編碼爲JSON。我的想法是將它保存在一個js文件中,我可以將它導入到HTML中,然後在那裏構建圖表。但是,這不起作用,因爲App Engine不支持寫入本地文件。

+0

通道api不是選項/適用的嗎? 我的第一個想法是:將數據發送到memcache並使用通道和python處理程序將json發送到客戶端JS ......但這只是您的第一個想法。 – 2013-03-07 04:49:42

+0

似乎頻道api是一個選項,但它可能是矯枉過正我正在做的事情。通道api創建一個持久連接立即更新信息,因爲我的應用程序不需要發送用戶這樣的更新。 – 2013-03-07 05:19:37

回答

1

XMLHttpRequest

從Python文件:JSON數據寫入一個URL。 App Engine中,這是與

self.response.write(data) 

完成從JavaScript,作出這樣的XHR請求:

function getData() { 
    var dataObject = new XMLHttpRequest(); 
    dataObject.open('GET', 'URL', true); 
    dataObject.send(); 
    return dataObject; 
} 

這將返回與數據的XMLHttpRequest對象在字符串中的響應或responseText屬性。

+1

要清楚,返回的對象將沒有數據。您需要使用'onreadystatechange'事件來處理正在接收的數據。請參閱http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp – 2013-03-07 12:25:52

1

在應用引擎上,您通常會生成一個HTML頁面,並將其提供給客戶端。您不需要將JSON保存爲js文件,您可以直接將其作爲文本嵌入到您向客戶端提供的HTML頁面中。

1

您可以使用類似Jersey的東西爲後端創建REST API。這是一個工作。您還可以使用appengine項目製作GWT應用程序,該項目具有非常簡單的後端連接。然後,您可以將其與您的JavaScript應用程序進行交互,或者使用您的JavaScript應用程序可以使用的鉤子。

相關問題