我在像IGN和Gamespot這樣的網站上注意到,他們的專題文章和評論頁面是HTML(.html),包含頁面上包含的用戶評論等動態內容。在靜態HTML頁面上包含動態內容
它們如何在靜態HTML頁面中包含這種類型的動態內容?
如果我關閉Javascript並查看他們的一個頁面,他們的動態內容就會消失,所以我認爲它是用Javascript完成的。
我對服務類似內容感興趣,並且想通過HTML來完成,而不是使用存儲在數據庫中的所有內容(動態註釋等內容除外)的動態PHP頁面。
希望是有道理的。
我在像IGN和Gamespot這樣的網站上注意到,他們的專題文章和評論頁面是HTML(.html),包含頁面上包含的用戶評論等動態內容。在靜態HTML頁面上包含動態內容
它們如何在靜態HTML頁面中包含這種類型的動態內容?
如果我關閉Javascript並查看他們的一個頁面,他們的動態內容就會消失,所以我認爲它是用Javascript完成的。
我對服務類似內容感興趣,並且想通過HTML來完成,而不是使用存儲在數據庫中的所有內容(動態註釋等內容除外)的動態PHP頁面。
希望是有道理的。
當你有客戶端 - 服務器關係時,在後臺經常會發生許多事情。
例如,Apache可以配置爲解析任何「文件擴展名」,文件結尾爲.xxx
作爲PHP。所以,你可以配置你的Apache實例.html文件中解析PHP,就像它與.php文件:
http://www.electrictoolbox.com/apache-parse-html-as-php/
而且還有,你可以服務於不同的「內容類型」的瀏覽器,所以,一個PHP解析的頁面可以發送,例如,PDF內容到瀏覽器:
http://php.net/manual/en/function.header.php
現在,可能更簡單的方法是使用Apache's rewrite採取URL請求,並將其改寫到一個PHP頁面其餘的URL請求被添加爲請求屬性,例如S IN的模型 - 視圖 - 控制器模式:
http://expressionengine.com/wiki/Remove_index.php_From_URLs/
http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
這樣一個URL如http://www.example.com/article/feature/my_story.html實際上將服務器的PHP解析器被視爲http://www.example.com/index.php?class=article&method=feature&id=my_story.html
然後你就可以使用AJAX方法專門更新頁面的一部分,如其他答案中所述。
似乎有Apache處理解析.html頁面中的PHP是我走的路。它的任何缺點?我可以限制這種行爲到某些目錄嗎?我認爲使用這種方法,編輯可以在PHP底部發布具有評論系統的HTML文章。 – Tom 2011-03-26 20:32:43
我本身沒有看到任何問題。如果這就是你需要的,而且你有辦法實現它,那麼就讓它實現。不過,考慮一下你是否需要它,因爲你可以用表達式引擎和以.html結尾的博客條目輕鬆地繞過它。當到達客戶端/服務器操縱層時,文件擴展名在很多程度上都毫無意義。 – 2011-03-26 20:38:32
@Tom,再次閱讀您的評論,我會強烈建議您使用Expression Engine或Drupal而不是自定義系統。如果你需要一個評論系統,並且你有編輯/故事編寫者,你不需要重新創建一個CMS,你只需要一個你需要的東西,而EE是一個很好的解決方案,儘管你需要購買它(我不隸屬於EllisLab,儘管我有一個使用EE的網站:http://emergency.unt.edu/)。 – 2011-03-26 20:45:06
實現此目的的一種常用技術是使用AJAX。顯然,動態內容必須來自動態服務器端腳本。
這是用Javascript完成的。這樣做的最常見方法是在頁面上使用Javascript,以訪問某種可檢索相應註釋的API(又名AJAX)。除非您使用某種API(可能是HTTP)公開該數據庫,否則您將無法以這種方式訪問數據庫。
如果你想在你自己的網站上這樣的東西,請尋找像Disqus這樣的服務,它們在服務器上存儲註釋並使用Javascript檢索它們。
我不知道,但我猜這是JavaScript的Ajax。有幾個解決方案可以做到這一點,但JavaScript是最好的,請查看MooTools(我個人最喜歡的)和JQuery。
請注意,URL以.html結尾的事實並不意味着頁面是靜態的。配置Web服務器以關聯*非常容易。HTML,PHP,Java Servlet或其他任何動態頁面生成技術。 – 2011-03-26 20:07:21