我正在幾個主頁佈局上運行拆分A-B測試。有一個觀察者設置會話變量(組A或組B),然後根據該變量更改佈局。Magento可以在緩存鍵中使用會話變量嗎?
問題是頁面緩存(在Magento整頁緩存中),無論用戶在哪個組,他們都看到A頁面或B頁面。
我可以修改Magento,以便每個版本的主頁緩存分開嗎?或者我可以完全禁用緩存在主頁上?還是有更好的方法來做這種測試?
我正在幾個主頁佈局上運行拆分A-B測試。有一個觀察者設置會話變量(組A或組B),然後根據該變量更改佈局。Magento可以在緩存鍵中使用會話變量嗎?
問題是頁面緩存(在Magento整頁緩存中),無論用戶在哪個組,他們都看到A頁面或B頁面。
我可以修改Magento,以便每個版本的主頁緩存分開嗎?或者我可以完全禁用緩存在主頁上?還是有更好的方法來做這種測試?
這並不直接適用,但我不得不根據頁面的不同來緩存頁腳,並最終編輯Mage/Page/Block/Html/Footer.php
文件並通過將url部分添加到返回的變量來更改getCacheKey()
函數。你不能追加會話變量嗎?
我知道你並沒有像我那樣看着頁腳,但它似乎可能會指向你一個有用的方向。
您可以使用符合HTTP 1.1的標頭來更改特定頁面的緩存行爲。
請參見:http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.6
您需要的標題是Cache-Control: no-cache
。
您需要將該標題與文檔一起發送出去。使用php,你可以使用頭函數來指定頭文件。
header("Cache-Control: no-cache");
對不起,我的問題還不夠清楚。這是內部Magento緩存有問題,而不是瀏覽器緩存。 – 2012-01-31 11:40:48
您應該爲您的塊實施整頁緩存打孔。看到這個教程[本教程](http://tweetorials.tumblr.com/post/10160075026/ee-full-page-cache-hole-punching)和[這個問題在SO](http://stackoverflow.com/問題/ 8126548 /努力,得到動態內容,打孔,穿magentos全頁緩存)。 – Zyava 2012-01-31 12:28:04