[英]What is the right way to call dynamic content (currently using ajax) inside a cached page?
我們有一個新聞網站,我們緩存一個完整的文章頁面。
該頁面上有4個區域需要繼續保持動態:
現在,我們想到這樣做的唯一方法是通過AJAX調用:
$('#usercheck').load(<?php echo "'" . base_url() . "ajax/check_header'"; ?>);
等等。
這對CPU產生了巨大的負擔,但是接近這個的正確/替代方式是什么?
請參照附件:
首先,您不必為每個可能的動態內容使用AJAX,尤其是在評論的情況下,您也可以通過iframe
加載它們。 這樣,您不依賴於Javascript來發出請求。 它甚至可能適用於櫃台。
但是,根據我在圖表中看到的內容,您的問題不是Javascript,也不是數據庫服務器。 在我看來,你有一些沉重的PHP控制器,也許你正在加載一個繁重的框架只是為了檢查$session->id
。
此外,“我們跟蹤每一個動作”是什么意思? 你如何追蹤它們? 你是從每一個小東西發送一個AJAX請求還是你用JS去掉它們,並且每隔30秒左右只發送一個?
我的建議是你考慮你正在調用的PHP代碼的大小,並盡可能地減少它,如果看起來可行,甚至為零(通過利用localStorage
在第一次登錄后跟蹤你的用戶會話),並且可能以其他方式加載計數器和評論。
例如,我推斷您只是在每頁加載時檢查一次計數器,忽略當前用戶正在閱讀文章時其他用戶的后續加載,因此您的計數器可能會在一段時間內過時,具體取決於您的交通。
我將更好地解釋它:你的頁面有n個視圖,所以當我加載它時,你請求n然后向我顯示n + 1 。 在我閱讀時,其他用戶會請求並查看同一頁面x次。 您在服務器上的計數器肯定已更新為n + x ,但我頁面上的計數器仍然顯示“n views” 。 那么,挑剔並向我展示n + 1並且沒有更新它有什么意義,因此被x關閉?
所以,首先計數器控制器應該盡可能的纖薄,如果你在iframe中加載它,如果沒有AJAX自動更新怎么辦?
這將使計數器保持最新狀態,您可以在每個頁面視圖中使用PHP渲染一次,然后靜態地提供生成的HTML文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.