鍍金池/ 問(wèn)答/PHP  HTML/ web前后端分離,首屏數(shù)據(jù)怎么快速加載?

web前后端分離,首屏數(shù)據(jù)怎么快速加載?

1.前后端分離,頁(yè)面首屏數(shù)據(jù)怎么渲染,要求數(shù)據(jù)和DOM同時(shí)渲染出來(lái)(ajax會(huì)導(dǎo)致dom節(jié)點(diǎn)先渲染,數(shù)據(jù)會(huì)慢一點(diǎn)渲染)。目前暫不清楚做法,如果用PHP代碼嵌套,那是不是違背了前后端分離思想。

注:首頁(yè)數(shù)據(jù)主要為新聞?lì)悢?shù)據(jù)。

回答
編輯回答
苦妄

你可以試試vue-router的路由懶加載,將模塊進(jìn)行拆分。

2017年3月13日 14:25
編輯回答
久舊酒

使用PHP代碼嵌套并不違背前后端分離思想。因?yàn)橐话闱昂蠖朔蛛x有一層中間層,可以使用node或者php等。中間層可以做很多操作,如: 接口代理, 路由控制, 服務(wù)端渲染... 其實(shí)你的問(wèn)題就屬于服務(wù)端渲染,你使用上php并沒(méi)有任何問(wèn)題。
另外其實(shí)你新聞相關(guān)頁(yè)面應(yīng)該使用類(lèi)似這種組件處理react-placeholder

2018年3月4日 00:14
編輯回答
旖襯

如果使用php嵌套方式,就是混合模式開(kāi)發(fā) 耦合性比較高,不易于后期修改與維護(hù),在初期加載可以運(yùn)用緩存 這樣速度就比較快,當(dāng)ajax獲取到數(shù)據(jù) 再修改界面渲染數(shù)據(jù)

2017年4月10日 16:20
編輯回答
敢試

我也覺(jué)得上面幾位說(shuō)的對(duì),服務(wù)端定時(shí)生成靜態(tài)化首頁(yè),后面ajax更新dom節(jié)點(diǎn),本地緩存部分?jǐn)?shù)據(jù)
直覺(jué)應(yīng)該還有更好的辦法

2018年3月24日 20:55
編輯回答
安于心

數(shù)據(jù)慢一些是肯定的啊 既然用了ajax加載 你還不如做個(gè)loading的覆蓋頁(yè) 等ajax 加載完再去掉比較容易

2017年12月16日 19:46
編輯回答
念舊

純粹的前后分離本來(lái)就不適用于所有場(chǎng)景,不要為了分離而分離。既然你的需求用前后分離很難實(shí)現(xiàn)(確實(shí)可以實(shí)現(xiàn),只不過(guò)麻煩),那首頁(yè)就在后端渲染也并沒(méi)有什么問(wèn)題啊。

如果純前端渲染又要 DOM 不提前顯示出來(lái),可以用 CSS 將最外層 DIV 設(shè)置為 display: hidden,待加載完之后再改回 display: block。如果用了 UI 框架可能會(huì)有些坑,琢磨琢磨吧

2017年5月14日 02:55
編輯回答
卟乖

要最快只有靜態(tài)化 其它都只能是各種優(yōu)化 樓上幾位的解答都是很好的可以參考

2017年10月27日 23:31
編輯回答
落殤

要求數(shù)據(jù)和DOM同時(shí)渲染出來(lái),只有在數(shù)據(jù)請(qǐng)求過(guò)來(lái)之前 body hide() ,隱藏掉,再加個(gè)loading了,

新聞?lì)?,可能圖片比較多,試試 lazyload.js

2017年12月4日 08:13
編輯回答
我以為

贊同樓上 @GhostCoder 意見(jiàn),如果要求同時(shí)渲染,不用 ajax 的話,lazy 之類(lèi)的就不在考慮之列了。關(guān)于是否要PHP代碼嵌套混編,看項(xiàng)目實(shí)際情況,盡量不要太死板,PHP 是一門(mén)很靈活的語(yǔ)言;話說(shuō)回來(lái),主頁(yè)如果是新聞數(shù)據(jù)的話,最快顯示頁(yè)面,大概就是做靜態(tài)化了。

2017年1月2日 04:09