2015-06-10 57 views
1

有沒有辦法用Liquid或JavaScript從bigcartel的服務器獲取當前日期和時間?我在我的商店中構建了一些需要具有一致(非客戶端)時間源的自定義功能。我只需要每頁加載一次就可以訪問它。如何從bigcartel的服務器獲取當前時間?

這是我到目前爲止已經試過,基於another date-related bigcartel question

var currentDate = new Date({{ 'Today' | date: "%Y, %m, %d, %H, %M" }}); 
currentDate.setMonth(currentDate.getMonth() - 1); 

這確實取得今天的日期,但它不會持續更新,因爲我刷新頁面。任何幫助真的會被讚賞。謝謝。

編輯:每次我編輯/保存並重新加載特定頁面後,液體將得到一個新的日期/時間,或者如果在第一次加載頁面後已經過了一定的時間(我沒有做足夠的測試確切地說,多少時間...也許2或3個小時......或更多?)。

此外,卡住的日期/時間對每個產品頁面都是唯一的。例如,如果我在9:30加載產品頁面A,並在9:32加載產品頁面B,則他們都會被困在相應的時間。這兩個頁面都從相同的代碼呈現。

我從來沒有使用Liquid,但我認爲它應該從服務器檢索每個頁面加載的新數據,類似於PHP。我誤解了嗎?

編輯2:它變得更加怪異。有時我會在給定產品頁面的URL的末尾附加查詢字符串(例如?comicID=225)。但是,如果我更改查詢字符串中的數字(或者甚至只是輸入隨機垃圾),它將檢索新的卡住日期。所以看起來,每當它首次被加載時,任何獨特的URL都會得到一個唯一的阻塞日期!

+0

使用液體在第一個視圖後是否會更新日期?我認爲Liquid會被編譯爲靜態內容,因此每次刷新頁面時都不會重新評估。 –

+0

我在回答您的問題時添加了更多信息。 –

+0

好的,我現在的想法是,Liquid腳本每隔幾個小時纔會得到重新評估,或者您的瀏覽器緩存所提供的內容。在包含bigcartel日期的HTTP響應中是否指定了緩存標頭? –

回答

2

我最終制作了一個帶有JavaScript的XMLHttpRequest()以從HTTP響應頭獲取當前時間,並且它似乎完美適合我的目的。這是我的工作代碼:

var req = new XMLHttpRequest(); 
req.open('GET', document.location, false); 
req.send(null); 
var currentDate = new Date(req.getResponseHeader('date')); 
相關問題