鍍金池/ 問答/PHP  HTML/ ajax異步加載頁(yè)面到內(nèi)容頁(yè)面中

ajax異步加載頁(yè)面到內(nèi)容頁(yè)面中

在開發(fā)項(xiàng)目的時(shí)候只用了一個(gè)頁(yè)面,在點(diǎn)擊編輯或者其他操作的時(shí)候,我是直接用ajax請(qǐng)求異步地址
后臺(tái)返回的是被json化的一個(gè)頁(yè)面
然后利用ajax顯示到頁(yè)面中,

后端是用的TP5

$data = User::get($id);
//tp5fetch渲染后將頁(yè)面存入$html 變量
$html = $this->fetch('item',['data'=>$data);
//ajax返回狀態(tài),和數(shù)據(jù)
return ajaxReturn(1,'success',['html'=>$html]);

前臺(tái)

$get(url,function(res){
    if(res.status == 1){
        $("#div").html(res.data.html);
    }
});

ajaxReturn函數(shù)是

function ajaxReturn ($status=0,$msg,$data)
{
    //json 函數(shù)是TP5內(nèi)置的,將字符串或者對(duì)象轉(zhuǎn)為json對(duì)象
    return json($status,$msg,$data);
}

返回的是
clipboard.png

直接打開頁(yè)面是:

clipboard.png

我想問的是這樣會(huì)不會(huì)影響性能?有什么問題沒??
或者有大神有什么好的辦法沒?

回答
編輯回答
焚音

性能沒太大影響,如果頁(yè)面需要搜索引擎收錄的好這樣不行,爬蟲爬取的頁(yè)面不執(zhí)行js,如果不需要搜索引擎收錄,這種ajax請(qǐng)求之后,數(shù)據(jù)渲染用戶體驗(yàn)度還是不錯(cuò)的

2017年10月22日 11:01
編輯回答
獨(dú)特范

性能問題,我覺得應(yīng)該不是這里需要考慮的。

如果你是要直接返回 html ,就不需要使用ajaxReturn,因?yàn)樗祷氐氖莏son格式。
而 json 對(duì)應(yīng)的是 php 中的數(shù)組,當(dāng)你返回?cái)?shù)據(jù)的時(shí)候才用。

返回 html 直接用 echo 或 exit()就可以了。

但我不推薦這種用法, 如果你使用了 ThinkPHP 中的模板,頁(yè)面就應(yīng)該直接顯示。
如果你想使用 ajax 方法渲染頁(yè)面,建議 php 中就不要使用模板了,后端直接返回?cái)?shù)據(jù),前端去渲染頁(yè)面,比如使用 vue.js 去渲染,vue.js 的模板的語(yǔ)法很簡(jiǎn)單。

2018年1月2日 22:19