首页 > 商品详情页是怎么生成的?

商品详情页是怎么生成的?

在商品列表中点击一个商品就跳转到这个商品的商品详情页,那这个商品详情页布局全都一样,内容不同,这是怎么做到的?不能是一个一个收工排的页面吧?


个人理解,有两种形式:

1.从后端开发的角度来看,一般来说,某个商品详情页后端代码一般是这样的

// Action (C)
public class Product{

    //商品详情页方法
    function item($pid){
         ....
         $["data"] = ....     //data数据一般根据$pid在此处从数据库中拿到。
         return "/xxx.jsp";   //返回某个页面
    }
}

//View (v)
如果是java的话一般jsp,freemarker,volicity模板
php的话就是smarty模板
node的话就是 jade等

模板的原理都是一样的,把公共的部分提取出来,不同的地方用标签代替。比如

<% if(xxx == xxx)  %>
   <div class="xxx">{{title}}</div>
<% else if(xxx !=xxx) %>
   <div class="xxx">{{sex2}}</div>
<% else  %>

后端返回的内容直接用模板渲染出来,由于pid(商品id)不同,所以可以看到不同的商品详情页的内容都不同,而实际上用的都是同一套模板,只是返回的数据不同而已。

2.从前端的角度,原理也差不多

后端并不直接返回某个页面,而是根据pid提供其对应的数据,通过ajax返回给前端,然后前端拿到数据以后填充前端模板进行渲染,打开不同的url(xxx.com/item/pid=1001)不同的pid的数据不同,所以渲染的页面不同。


标签一样 数据跟后台要


一种是用模板引擎,第二就是用vue.js,或者angular.js
这种框架,建议用vue,方便些,数据是ajax,返回data


这是动态页面技术实现的,后端使用PHP或者JAVA输出的HTML页面


item.jd.com/10127317515.html
这是随便点开的一个页面。 只要你访问的地址为 item.jd.com/"itemId" ,返回的就是对应这个商品的页面。
【热门文章】
【热门文章】