将HTML推送到网页(JS VS PHP)

Pushing HTML to a web page (JS VS PHP)

本文关键字:JS VS PHP 网页 HTML      更新时间:2023-09-26

我只是对标题感到好奇,因为我一直在使用PHP用HTML加载我的搜索结果,现在我已经开始为此目的使用javascript。

之前我在我的网站上做了以下的事情来加载一个页面的搜索结果

<?php
//example code
echo ' <div class = "container">
<div class = "box"> <p> Searh result e.g foo bar </p> </div>
 </div>'
?>

现在,当我调用ajax函数将搜索文本发布到PHP页面时,上面的工作将正常进行,页面将返回所有匹配的结果以及HTML,并且jQuery将结果推送到我的页面

我现在正在做的是通过ajax将搜索文本发布到PHP页面,但这次不是返回HTML标签中打包的所有搜索结果,而是返回一个JSON类型数组,其中只有数据

现在,当我从PHP接收到这个数据数组时,我将它发送给一个自定义(自制)javascript函数,该函数遍历数组并生成如下(例如)

 for (myData in data) 
    {
            results+='<li>'+
                '<div class="row">'+
                    '<div class="col-xs-12 col-sm-9 no-margin">'+
                        '<a href="">'+data[myData].name+'</a>'+
                        '<div class="price">'+
                            '<div class="">'+data[myData].price+'</div>'+
                        '</div>'+
                    '</div>'+
            '</li>';
    }

最后,变量results拥有所有的HTML和数据,然后通过jQuery append推送到页面。

在第一种方法中所有的工作都在服务器端完成它返回了大量的数据因为HTML标签将会乘以返回的结果数

而在第二个方法中,服务器将只返回JSON类型的数据数组其余的工作将由客户端完成。那么问题是,第二种方法是否在某些方面比第一种方法好?

Thanks in advance

两种方法都同样有效,但是每种方法都需要考虑一些事情:

PHP

  • 即使用户禁用了JavaScript,它也能工作
<标题> JavaScript h1> li>处理被卸载到客户端,减少服务器的负载。
  • 实际的负载量可以忽略不计,因为唯一的"处理"是构建HTML
  • 更少的流量,但如果你的服务器正在压缩响应(很可能是),那么这并不是一个明显的区别。
  • 更快,更响应的页面,如果你使用ajax,因为它不需要重新加载整个页面。
  • 如果用户禁用了JavaScript,则不起作用。
  • 最后,我会选择JavaScript,除非你知道你有很多用户禁用它。

    理想情况下,你会有一个没有js的回退,PHP创建HTML。

    当你在谈论一个简单的小网站时,做你喜欢的…

    当涉及到更复杂的应用程序时,必须将数据与表示分开。因此,我认为正确的方法是首先使用模板。

    然后,您可以选择侧面:

    客户端会更好,当使用一些框架或你的应用程序HTML立即改变。你得到你需要的数据,并在客户端呈现它。使用模板引擎

    服务器端可能是好的,如果你需要构建大量的HTML与一些困难的逻辑,需要它一次或两次…

    你也可以为两边使用相同的模板引擎,这样你就可以组合了。

    我认为,它总是关于方法的组合,所以准备你的应用程序为两种。(可能从一开始就为REST设计)

    注:在PHP和JavaScript之间共享模板

    不是真正的答案…但是它们都很糟糕:-/为什么不看看像Knockout.js这样的东西。你可以只是更新你的视图模型与"json类型数组只有数据在其中",你的视图更新就像魔术一样;-)

    你!