2012-01-27 153 views
3

這可能嗎?當有相應的菜單項被點擊時,我有4個頁面可以動態加載PHP/AJAX。PHP - 創建包含動態內容的xml站點地圖

什麼是優化的內容與PHP動態加載的最佳做法?我試圖生成一個基本的XML網站地圖,但唯一顯示的頁面是後端處理程序與頁面的相對路徑,而不是頁面本身。

感謝您的回覆。

回答

2

那麼,與阿賈克斯的聯繫最好的做法是,你仍然在非JS瀏覽器可以追蹤(搜索引擎)的標籤指定地址。這方面的一個愉快的副作用(除了SEO)是一個XML站點地圖是一樣簡單創建好像有動態加載任何Ajax內容...

你應該努力使你的內容(Ajax)功能在正常沒有JavaScript。然後,大部分這類問題都會消失。

更新基於評論

你有一對夫婦的基於以下意見作進一步的解釋選項...

最簡單的辦法是執行的緩存版本中是一致的命名約定您的動態內容。然後,您可以簡單地使用globdocs(或opendirdocsreaddirdocs)掃描緩存目錄,並根據目錄中找到的文件名稱生成站點地圖。

另一種選擇是創建某種每當你緩存動態頁面更新的「註冊表」。這可能是一個數據庫表或一個將站點地圖文件名標識符映射到實際緩存文件名的平面文本文件。無論何時存儲或刪除緩存文件,您都可以在此註冊表中添加或刪除條目。

作爲替代就像我剛纔提到的,你可能會使用XML網站地圖本身作爲註冊一個簡單的註冊表。每次創建緩存文件時,都可以將sitemap.xml加載到DOMDocumentdocs中,並實時操作站點地圖,並在完成編輯時將其保存回磁盤。

它實際上只是歸結爲問題的解決,我想。

+0

謝謝你,先生,這是很好的建議,我有我的鏈接設置爲禁用正常的瀏覽器行爲,如果啓用JS。然而,我希望動態框架可供在搜索中找到其中一個「非動態」頁面的用戶使用。有什麼建議麼? – Tribbey 2012-01-27 15:36:26

+0

當你說*「動態」,*那麼,你說的是從數據庫生成的東西,而不一定是Ajax? – rdlowrey 2012-01-27 16:00:51

+0

不一定,所有使用Ajax加載的php文件都位於自我緩存存儲庫中,爲此我在服務器端爲此設置了更好的性能。我沒有足夠的內容來利用分貝。我想我的目標可能是將非緩存頁面(站點地圖)重定向到動態頁面(Ajax)。 – Tribbey 2012-01-27 16:45:00