性能基準(zhǔn):PHP生成的內(nèi)容VS。JavaScript和DOM over AJAX
在回答這個(gè)問(wèn)題時(shí),我提出了幾點(diǎn):
。在這種情況下,您知道應(yīng)該顯示產(chǎn)品列表。應(yīng)該在頁(yè)面加載時(shí)顯示問(wèn)題答案的事實(shí)。
。例如,當(dāng)您單擊Stack Overflow上一個(gè)問(wèn)題或答案下的“評(píng)論”鏈接時(shí)。您想查看特定問(wèn)題的評(píng)論的事實(shí)在頁(yè)面加載時(shí)是未知的。
。
。例如,在禁用Javascript的情況下,Stack Overflow可以正常工作。您無(wú)權(quán)訪問(wèn)Markdown實(shí)時(shí)預(yù)覽或動(dòng)態(tài)徽標(biāo)通知,但核心功能仍然完整。
,尤其是在高延遲連接(例如蜂窩網(wǎng)絡(luò))上。請(qǐng)參閱Yahoo 的 。
您應(yīng)該將Javascript視為可能無(wú)法啟用的附加功能,而不是應(yīng)用于構(gòu)建網(wǎng)站關(guān)鍵部分的功能。此規(guī)則有例外。如果要進(jìn)行某種分頁(yè),單擊“下一頁(yè)”按鈕,而只更改產(chǎn)品列表,則AJAX可能是正確的選擇。但是,您應(yīng)該確保不使用Javascript的用戶不會(huì)被排除在查看整個(gè)列表之外。
。例如,以Friendly’sRestaurants為例。我想在購(gòu)物中心時(shí)查看他們的菜單,所以我在iPhone上加載了他們的網(wǎng)站,卻發(fā)現(xiàn)如果沒(méi)有Flash,您實(shí)際上無(wú)法獲得有關(guān)餐廳的任何有意義的信息。到處都是花哨的菜單,到處都是飛揚(yáng)的甜點(diǎn),但是最后,我只想看看菜單上的項(xiàng)目。我不能這樣做,因?yàn)樗麄冃枰狥lash。在這種情況下,服務(wù)的平穩(wěn)降級(jí)將是有幫助的。
沒(méi)有Java腳本,網(wǎng)絡(luò)上的某些事情將無(wú)法有效完成。顯示產(chǎn)品列表 不是其中之一。如果您仍然不確定,請(qǐng)查看其他熱門網(wǎng)站的工作方式。我認(rèn)為您會(huì)發(fā)現(xiàn)大多數(shù)成功且設(shè)計(jì)精良的網(wǎng)站都遵循上述指南。
解決方法對(duì)于以下非常簡(jiǎn)單的任務(wù): 從數(shù)據(jù)庫(kù)查詢產(chǎn)品列表并將其顯示在網(wǎng)頁(yè)上,請(qǐng) 考慮2種設(shè)置:
Setup1 :PHP腳本查詢。所有內(nèi)容都建立在服務(wù)器上,并且整個(gè)頁(yè)面都返回給客戶端。
Setup2:使用AJAX請(qǐng)求內(nèi)容的靜態(tài)HTML“頁(yè)面框架”。接收到的內(nèi)容使用Javascript在客戶端進(jìn)行解析,并使用innerHTML或類似內(nèi)容呈現(xiàn)。
當(dāng)然,只有當(dāng)您有可供客戶選擇的頁(yè)面,類別和標(biāo)簽時(shí),第二種設(shè)置才有意義。
我需要至少通過(guò)以下方式 比較 這兩個(gè):
內(nèi)容需要花費(fèi)的時(shí)間用戶體驗(yàn)(setup1整體交付,setup2分為“兩部分”交付)可擴(kuò)展性-每天有100,000個(gè)查詢時(shí),設(shè)置如何進(jìn)行比較任何對(duì)此問(wèn)題的想法將不勝感激。
相關(guān)文章:
1. objective-c - iOS開發(fā)支付寶和微信支付完成為什么跳轉(zhuǎn)到了之前開發(fā)的一個(gè)app?2. mysql優(yōu)化 - 關(guān)于mysql分區(qū)3. 請(qǐng)教各位大佬,瀏覽器點(diǎn) 提交實(shí)例為什么沒(méi)有反應(yīng)4. 致命錯(cuò)誤: Class ’appfacadeTest’ not found5. javascript - ionic2 input autofocus 電腦成功,iOS手機(jī)鍵盤不彈出6. python - 管道符和ssh傳文件7. css - 移動(dòng)端字體設(shè)置問(wèn)題8. css - 求推薦適用于vue2的框架 像bootstrap這種類型的9. html5 - 如何實(shí)現(xiàn)帶陰影的不規(guī)則容器?10. javascript - 循環(huán)嵌套多個(gè)promise應(yīng)該如何實(shí)現(xiàn)?
