通过编写在查看服务器端(PHP)实现与客户端(jquery)实现时呈现标记的函数库,对生成网页有什么影响?
服务器端: 客户端发出请求,服务器通过运行php程序呈现标记,将标记发送到客户端,浏览器加载它并显示网页。
function makeTitle( $text ) {
echo <<<HTML
<style>
#title {
color:red;
}
</style>
<div id = "title">{$text}</div>
HTML;
}
makeTitle("This appears as red text");
客户端: 客户端发出请求,javascript以.html文件发送给客户端,客户端的浏览器呈现标记,加载它并显示网页。
var text;
function title(text) {
$('body').html(function() {
return '<div id = "title">'+text +'</div>';
});
$("#title").css("color","red");
}
title("This appears as red text");
哪种实现更有效,因此用户必须等待更少的时间,无论是服务器运行php程序还是浏览器运行javascript程序,以及在什么情况下每个实现都是最有效的生成静态CSS和HTML?
答案 0 :(得分:4)
在服务器上生成会很快,但是你在jQuery中提到了一个.html文件的请求。为什么不使用jQuery动态生成html?您可以通过将jQuery对象传递给一个封闭的HTML标记来创建DOM元素,例如$('<div/>')
。这是使用您给出的示例的实现。
function makeTitle(text) {
$('body').append(
$('<div/>', {
id: 'title'
}).css({
color: 'red'
})
);
}
makeTitle("This will appear as red text");
如果您正在寻找一个简单的模板解决方案,PHP将是一个不错的选择,但是如果您想创建一个可以在不刷新页面的情况下频繁更改内容的Web应用程序或页面,我发现它非常简单,使用起来非常快PHP生成数据,jQuery生成标记。
答案 1 :(得分:4)
使用javascript呈现标记时的另一个含义是,您的标记对于网络抓取工具是不可见的。如果SEO是一个问题,不是最好的方式去。
答案 2 :(得分:0)
我认为通过PHP生成标记更可靠,就像在浏览器上禁用javascript一样,可能不会呈现标记。
除此之外,客户端计算机可能具有不同的配置,这将进一步影响标记生成响应时间。所以我认为通过PHP进行标记会更有效率。
答案 3 :(得分:0)
我会选择PHP。处理时间的差异是最小的,但它也适用于没有启用javascript的客户,如果没有在其他地方使用,则不需要下载jQuery的开销。