将HTML推送到网页(JS VS PHP)
Pushing HTML to a web page (JS VS PHP)
我只是对标题感到好奇,因为我一直在使用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,它也能工作
- 实际的负载量可以忽略不计,因为唯一的"处理"是构建HTML
最后,我会选择JavaScript,除非你知道你有很多用户禁用它。
理想情况下,你会有一个没有js的回退,PHP创建HTML。
标题>当你在谈论一个简单的小网站时,做你喜欢的…
当涉及到更复杂的应用程序时,必须将数据与表示分开。因此,我认为正确的方法是首先使用模板。
然后,您可以选择侧面:
客户端会更好,当使用一些框架或你的应用程序HTML立即改变。你得到你需要的数据,并在客户端呈现它。使用模板引擎
服务器端可能是好的,如果你需要构建大量的HTML与一些困难的逻辑,需要它一次或两次…
你也可以为两边使用相同的模板引擎,这样你就可以组合了。
我认为,它总是关于方法的组合,所以准备你的应用程序为两种。(可能从一开始就为REST设计)
注:在PHP和JavaScript之间共享模板
不是真正的答案…但是它们都很糟糕:-/为什么不看看像Knockout.js这样的东西。你可以只是更新你的视图模型与"json类型数组只有数据在其中",你的视图更新就像魔术一样;-)
你!
- Js.erb VS按钮标记-不'不起作用.为什么?
- 开发第三方小部件-Angular vs jQuery vs普通的旧JS
- JS vs JSON for config in Node js
- vanilla js vs jQuery ajax call
- Node.js vs Javascript Closure
- marionette.js vs Backbone updating DOM
- 配置文件:JS vs INI
- Hello.js vs Passport.js?
- derby.js vs capsule/thoonk?
- JavaScript 2D rendering library [pixie.js vs three.js]
- 将HTML推送到网页(JS VS PHP)
- HTML5属性操作:纯JS vs. jQuery
- raphael.js vs paper.js
- 它会在这种情况下生成100个不同的实例变量吗(JS vs c++) ?
- Blanket.js vs Istanbul-js vs JSCover
- jbgallery vs supersized js vs flash
- Node.js vs Ajax在web服务器上上传文件
- SceneJS vs Three.JS vs others
- Backbone.js Vs Knockout.js
- Mustache.js vs dust.js:我如何瞄准我的学校数组