通常當我放在一起動態生成的HTML標記,我一直在使用PHP來存儲信息,然後通過循環創建頁面上的元素。一個例子是導航;創建一個對象數組,然後遍歷它們以回顯標記。在開發或維護過程中,我可能不得不做很小的(或主要的)更改,這對我有很大的幫助。PHP VS JavaScript進行動態HTML頁面
最近我一直在想我是否應該使用JavaScript來做到這一點。原理相同,但使用addElement。
只是想得到一些意見,優點,缺點,PHP VS爵士,搜索引擎優化的考慮,等等
謝謝鄉親!
通常當我放在一起動態生成的HTML標記,我一直在使用PHP來存儲信息,然後通過循環創建頁面上的元素。一個例子是導航;創建一個對象數組,然後遍歷它們以回顯標記。在開發或維護過程中,我可能不得不做很小的(或主要的)更改,這對我有很大的幫助。PHP VS JavaScript進行動態HTML頁面
最近我一直在想我是否應該使用JavaScript來做到這一點。原理相同,但使用addElement。
只是想得到一些意見,優點,缺點,PHP VS爵士,搜索引擎優化的考慮,等等
謝謝鄉親!
這不是一個或其他類型的情況;一般來說你需要做兩個。
做它的客戶端可能會慢一些,因爲服務器仍然需要找出所有的數據,但客戶需要以使其;這將涉及多個請求(很可能),並且DOM操作很慢(特別是在較舊的瀏覽器上)。
如果SEO是你關心的事情很簡單:JS沒有編入索引。
也有UI的問題:如果未啓用JS,JS無依賴的東西會加載。
做它的客戶端是指:
在決定是否應該做一些客戶端,而不是服務器端,作爲一個經驗法則問自己兩個問題:
最好的做法是產生在服務器端進行必要的標記。原因包括:
SEO:大多數爬蟲機器人不會解析Javascript,所以他們會跳過任何關鍵的東西,你用addElement生成。
無障礙:您的網站應該基本功能沒有JavaScript。考慮那些可能在Kindles,老黑莓,諾基亞或其他帶數據的功能手機上瀏覽您的網站的人。他們不需要所有奇特的風格和效果,但他們至少應該能夠繞過你的網站。
一致性: JS可以添加另一個級別的跨瀏覽器可變性。爲什麼依靠客戶端渲染必要的標記?做服務器端。
當然,這個建議可以,如果你正在開發一個全JS桌面應用程序或使用類似的Sencha Touch框架內採取大步。
一種可能性是檢測什麼樣的用戶正在瀏覽您的網站:
如果它是一個機器人:解析在服務器端,你可能只是輸出由機器人所需要的,不圖形化的東西,...
如果它是一個移動:顯示爲手機優化的版本,使用類似煎茶觸摸,查理指出
如果它是一個標準的瀏覽器,無javascript:在渲染頁面服務器 側
如果它是一個標準的瀏覽器,使用javascript可以實現:只需發送從服務器端的數據(或使用Ajax加載),從客戶端和呈現數據
您可以使用的東西像Mustache,至極是許多服務器端語言(PHP和Ruby,Java的模板引擎運轉......也於JavaScript,可實現客戶端頁面渲染!
,並嘗試使用一個JavaScript框架喜歡jQuery,Mootools,Dojo或ExtJS,他們會幫你寫將在每個瀏覽器上運行的代碼。
PHP是好一些事情,包括把手類型模板,並快速的服務器端內容替換。但它對於一些事情也不是很好,比如單頁應用程序和遊戲,實時更新網站。這些東西都是JavaScript強大的地方。
請您詳細說明這些差異嗎? – 2014-10-24 01:12:37
感謝大家對他們的意見。這有助於證實我的懷疑,特別是在搜索引擎優化。堆棧溢出FTW! – Eric 2011-05-24 13:42:10
看起來,儘管在這裏達成共識,JavaScript仍然是現在的走向(Angular,React等)。對於沒有人提到的JavaScript的一個重要的專業人員,沒有頁面重新加載,從而帶來更好的用戶體驗。 – 2016-05-18 19:25:25