哪个生成标记,jquery或php更快?

时间:2013-02-27 03:50:38

标签: php javascript jquery css

通过编写在查看服务器端(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?

4 个答案:

答案 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的开销。