南岸区苹果专卖店是正品吗售后维修在什么地方手机不能开机了

如何用PHP做淘宝首页
如何用PHP做淘宝首页
  学以致用,如何用所学的做淘宝页面呢?下面我们就来聊一聊淘宝首页和它背后的一套,希望对大家优化淘宝页面有所帮助!更多内容请关注应届毕业生网!
  文章好像有点长,列个大纲会比较好:
  一、相关背景介绍
  二、淘宝首页的整理变迁
  1. PHP 下的淘宝首页
  2. PHP 到 Node 的变迁
  3. Node,不一样的模式
  三、淘宝首页的性能优化
  1. 页面渲染逻辑
  2. 一起来看看淘宝首页的个性化
  3. 淘宝首页性能优化实践
  四、淘宝首页的稳定性保障
  1. 兜底容灾机制
  2. 监控预警机制
  3. 上线前的自动化检测
  五、淘宝首页的敏捷措施
  1. 健康检查
  2. 接口 Hub
  3. 快捷通道
  六、小结
  一、相关背景介绍
  淘宝首页是淘宝的门面,承载着几乎淘系所有业务的入口,流量很大,量级单位为亿。近几年无线端崛起,业务重点开始向无线终端偏移(目前不能叫偏移,基本以无线为主了),所以淘宝 PC 端首页的流量也有削减,不过即便如此,它的日均 PV 依然相当高。
  淘宝首页一向是内部平台和技术的试验田,它一直在变化着。最新的框架和系统都会找淘宝首页试点,可以试想下,如果某一项需要推动的升级或者优化措施在淘宝首页已经上线,并且拿到了良好的数据和稳定性,其他业务还有什么理由不去尝试和更迭呢?同时,去年一年身在淘宝前端的技术架构组,自然而然也会主动去 push 一些实验性的内容到业务上。
  淘系的站点页面包括首页、其他频道页和活动页等,这些页面并不都由淘宝前端一行一行的代码码出来,业务如此之多,这种玩法即便人数 double 也忙不过来。事实上,大多数页面都是依托内部的搭建平台&&运营或者前端通过模块搭建的方式&&构建的,而前端 focus 的重点在于搭建平台的建设自身以及模块的通用性和复用率的保障,当然,还有一些工程化的东西。
  使用搭建平台搭建的页面,前端只需要考虑组成页面的原子模块的开发,整体的渲染由搭建平台提供的统一脚本全权负责。而在淘宝首页上,考虑到页面模块数量巨多,加上还有少量跨部门、跨团队的沟通,渲染模型略微不同。
  二、淘宝首页的整体变迁
  背景中提到,淘宝首页依托于内部搭建平台,它的变迁自然也是跟着搭建系统的变化而变化的。
  1. PHP 下的淘宝首页
  接手淘宝首页不久,便遇到了一年一度的改版,那时它还运行在 PHP 环境中。这里需要说明的是,淘宝首页的所有代码完全由前端掌控,前端不会直接跟数据库打交道,其数据来源分为两部分。
  数据来源
  一是 运营填写的数据。 采用前端挖坑的形式,预留坑位让运营获取填写数据,如(伪代码):
  $info = Person('name:String:姓名,age:Number:年龄', '个人信息坑位填写');?&
  $info.forEach(index) { ?&
  Name: = info[index].name ?&, Age: = info[index].age ?&
  上面的代码会产生一份 PHP 的模板和 info 字段对应的表单坑位,这个过程简称「挖坑」。
  运营填写这些坑位就会产生这份 PHP 模板对应的数据,最后渲染出来就是一个完整的 HTML 片段(实时性渲染)。
  ├── data.json # 运营数据的来源
  └── index.php # 装载运营数据的 PHP 模板
  旧版搭建系统中就是通过这种方式构造一个子模块。我描述得十分简单,但作为一个平台它需要考虑的东西还有很多很多的,比如数据顺序的控制、定时发布、回滚机制、过滤机制、筛选机制、数据的同步、数据的更新、版本控制、权限控制、其他系统的引用等等。
  二是 后端或者个性化平台提供的数据。 不同的业务有不同的诉求。一些业务有自己的后端,他们要求使用自己业务产出的数据;有的业务希望用户看到的内容不一样,千人千面,期望接入算法;一些业务跟卖家直接打交道,期望使用招商数据;而有些业务期望采用运营从数据池筛选出来的数据&总之,淘宝首页需要对接形形色色的系统,接口繁多。后面会提到对动态数据源的整合。
  并且这些系统对应的域名是不一样的,JSONP 格式自然也就成了首选。但一些特殊的系统,比如广告,它的渲染并不是一个简单的 JSONP 请求,可能它还要干预整个广告的渲染流程,比如加载他们的 JS,把渲染的控制权交过去。
  页面的架构
  上面介绍了数据的来源和子模块的结构,那么整个页面又是如何构成的呢?模块的搭建分为两种,一种是可视化搭建,运营或者前端可以将开发好的模块(或者模块库中选取的模块)拖拽到容器内,形成一个页面,
  &&&&&&
  当然,上图也只是一个模型,作为一个系统需要考虑的问题还有很多很多,如页面的布局、多终端适配、模块的临时隐藏、位置调整、皮肤选择、模块的复制等等。
  也可以通过如下源码搭建的方式(伪代码):
  = loadModule(Mod1ID) ?&
  = loadModule(Mod2ID) ?&
  = loadModule(Mod3ID, 'lazyload') ?&
  = loadModule(Mod4ID, 'lazyload') ?&
  = loadModule(Mod5ID, 'lazyload') ?&
  通过模块 id 将模块引入,并且添加一些类似 lazyload 的标记,方便控制渲染节奏和数据入口。源码搭建和模块搭建的区别在于,前者更易于控制模块的结构以及模块的渲染顺序。
  动态数据源
  首页面对一大堆接口和平台,对接几十个业务方,接口是个很大的问题,由于后台系统的差异,基本没有办法统一数据源的格式,一旦运营哪天心血来潮要换一个他自己觉得用的更爽的或者数据更好的系统,前后端估计又得沟通和对接几次。所以出现了下面这张图:
  平台具备数据源接入的能力,也就是说我们挖的坑不仅仅可以让运营填数据,还可以从各种数据源中直接导入数据,当然,这里需要进行一次数据字段的映射转换。后端提供的接口是这样的:
  &data&: [{
  &item_name&: &name&,
  &item_url&: &http://xxx&,
  &item_pic&: &http://xxx&
  前端约定的接口形式是:
  &info&: [{
  &name&: &name&,
  &url&: &http://xxx&
  那么系统必须提供这种映射的绑定策略:
  info/name -& data/item_name
  info/url -& data/item_url
  绑定之后,数据既可以同步输出,也可以异步输出,这些都是平台提供的能力。这个方案基本上解决了后端系统/接口变化的问题,并且减少了前后端之间的沟通成本。
  不过这里需要注意的是,虽然页面上的接口都通过平台统一梳理了一次,这也意味着,页面所有的请求会先流经平台,然后分发到各个后端,平台的抗压能力要求很高。
  2. PHP 到 Node 的变迁
  淘宝首页日均请求的这个量级,不可能是十几二十台台服务器抗得住的,支撑它必须有一个服务集群。
  每一个 CDN 节点上都具备 PHP 渲染的能力,当页面发布时,我们把该页面所有的模块和数据同步到全部 CDN 节点上,基本模式大概就是如此了。看起来还挺不错,但是经过一段时间的运维,很多安全、性能问题都慢慢浮现出来了:
  性能问题。 每个 PHP 页面包含多个子模块,而子模块也有可能引用了其他的子模块,PHP 的 include 操作是存在消耗的,每一次引用都是一次磁盘 IO,一个渲染节点上跑了成千上万个类似淘宝首页的 PHP 页面,并发一高其效率可想而知。
  推送机制问题。 文件同步(图中的 sync 动作)是一种比较恶心的机制,首先,时间上没法控制,一个文件同步到所有的节点,快则几秒钟,慢的话耗时会超过一两分钟;并且同步过程还有可能失败,健康检测的成本也是相当高的。发布比较紧凑时,需要同步的文件也很多,很容易造成队列堆积,加剧同步差的体验。
  实时性强需求问题。 文件在推送之前,还可能经过一些前置系统,发布链路越长,线上生效时间越慢,慢的时候大约五分钟才生效,这样的延时对于实时性要求很高(如秒杀)的需求来说是完全不能接受的。
  当然,还有很多其他问题,如运维成本增高、安全风险增高、PHP 资深人才储备不足等等。所以 PHP 渲染容器的命运,就是,被干掉。
  上图改变了下玩法,服务集群为 Cache CDN,它只有静态文件处理能力,没有 PHP/Node 的渲染能力,所以处理效率高,性能也好,抗压能力相当强,并且扛不住的时候还可以花钱买服务,拓展 Cache 集群。
  用户访问时,Nginx 转到 Cache CDN,如果命中缓存则直接返回,没有命中便回源到源站服务器。源站服务器是具备模块渲染能力的 Node 服务,它可以做很多事情:
  控制 Cache 响应头,通过 max-age 和 s-maxage 控制页面在客户端的缓存时间以及在 Cache 上的缓存时间,这个缓存时间可以根据需求随时做调整,比如大促的时候调长一些
  控制内外网环境,和 AB 测试状态
  融合前端相关的工具链,比如检测、压缩、过滤等等
  它的优势有很多,这里不一一列举了。这个模式中还添加了一层容灾,源站服务器每隔一段时间将数据推送到于 Cache 同机房的备份服务器,一点源站挂了,还能够自动容灾到备份数据上。
  模式的变化不仅在运维上有了突破,CDN 被攻击时的安全风险也低了很多,同时也省却了 sync 所需的各种检测机制,每年节约成本也是百万以上,优势还是相当明显。
  3. Node,不一样的模式
  上面 PHP 模块中,我们只说了 HTML 和数据部分,用心的读者应该已经发现,CSS 和 JS 这些静态资源都没提到,那页面是如何渲染的呢?
  旧版 PHP 页面中,我们是直接引入了一个 CSS 和一个 JS,淘宝这边采用的是 git 版本迭代发布,这些静态资源都是直接放在一个 git 仓库中。也就是这样:
下页更精彩:1
本文已影响人
如何用PHP做淘宝首页相关推荐【PHP】淘宝客API程序|全自动更新|无人值守|搭载淘点金和爱淘宝的爱搭配 – 分享吧
你的位置: >
> 【PHP】淘宝客API程序|全自动更新|无人值守|搭载淘点金和爱淘宝的爱搭配
1、现在淘宝客API 重新开放申请,本程序就是基于”淘宝客基础API”开发出来的产品,海量商品全自动更新,无需人工采集,而且采集的商品都是淘宝客商品!
  2、集成爱淘宝的”爱搭配”频道,极大丰富了网站的内容,看图的同时去购物,同时可以赚佣金!
   佣金链接转换只需在后台设置好 淘点金 代码 即可实现全站的 所有淘宝链接 自动转换成佣金链接。网页缓存功能 进一步加快网页打开速度后台开启网页缓存功能 可加快网页打开速度网站配置包括网站标题、名称、LOGO、 Meta 关键字、Meta 描述、网站版权、带手机版本伪静态功能需服务器支持 URL重写自定义网站顶部/顶部导航自定义网站顶部/底部导航管理员配置可创建多个管理员 同时管理 而互不影响
下载地址:文件名称:淘宝客API程序文件大小:2.31MB适用版本:PHP 转载请注明: &
与本文相关的文章PHP和JQUERY实现淘宝API在线应用(三)之API调用示例。。。。。
class ApiTradesSoldGet {
& & public function
getTradesSoldData($page, $sessionKey) {
& //导入配置文件
& $commConfig = include_once
"config/config.php";
& $c = new TopC
& $c-&appkey =
$commConfig["appKey"];
& $c-&secretKey =
$commConfig["appSecret"];
& //$c-&format = "json";
&//返回数据使用 JSON 格式,默认为xml
& $req = new TradesSoldGetR
& //设置查询项目
$req-&setFields("tid,created,num_iid,orders.title,orders.pic_path,status,buyer_nick,receiver_name,receiver_city,receiver_mobile,receiver_phone,consign_time");
& $req-&setPageNo($page);
&//默认为第一页
$req-&setPageSize($commConfig["pageCount"]);
&//默认为40
& //$req-&setUseHasNext("true");
&//此项开启后,显示是否有下一页。有的话返回true。开启后不返回total_result
& $resp = $c-&execute($req,
$sessionKey);
& return $ &//返回结果
返回结果后,前端通过jquery解析。推荐返回数据格式json
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。PHP教程:简单实现淘宝API调用
>   10:37:04 浏览次
class TaobaoApi {
* 定义并初始化参数数组,某些固定参数可写在这个位置
protected $_param = array(&app_key& =& &&, &v& =& &2.0&,
&sign_method& =& &md5&, &format& =& &xml&);
* Sign值存储变量
protected $_
* 应用密码存储变量
public $secret = &your secret&;
* 请求URL存储变量
protected $_
public function run() {
$this-&createSign();
$this-&createRequestUrl();
return $this-&requestData();
* 通过魔法赋值向参数数组写入数据
* @param string $name 数组名
* @param string $value 数组键值
public function __set($name, $value) {
$this-&_param[$name] = $
* 组建Sign
* @global $this-&_param 参数数组
* @global $this-&secret 应用密钥
protected function createSign() {
$this-&_param[&timestamp&] = date(&Y-m-d H:i:s&);
ksort($this-&_param, SORT_STRING); //数组按键值排序
foreach ($this-&_param as $key =& $value) {
$tmp.= $key . $
$this-&_sign = strtoupper(md5($this-&secret . $tmp . $this-&secret));
* 由参数和Sign值组合成请求URL
* @global $this-&_param
* @global $this-&url
protected function createRequestUrl() {
$this-&_param[&timestamp&] = urlencode($this-&_param[&timestamp&]);
$this-&_url = &http://gw./router/rest?sign=& . $this-&_
foreach ($this-&_param as $key =& $value) {
$this-&_url.=&&& . $key . &=& . $
* 获取数据
protected function requestData() {
return file_get_contents($this-&_url);
$a = new TaobaoApi();
//下面只要写入淘宝API规定必须传入的参数
$a-&method = &taobao.item.get&;
$a-&fields = &desc,nick&;
$a-&app_key = &your key&;
$a-&secret = &your secret&;
$a-&num_iid = ;
//默认以xml方式输出
echo $a-&run();
免责声明:本文来源于站长学习网,由网友提供或网络搜集,仅供个人研究、交流学习使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。会定期发布程序开发相关趋势文章,包括
等领域,敬请关注!
人收藏5&收藏
微信扫一扫
400-650-7353问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
RT.....顺便问一下,像类似淘宝这样的大型网站,为什么会使用php来做前端呢?php本身不是偏后端的语言吗?而且对于前端而言,不是可以用js来处理后端的数据吗?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
现在淘宝逐渐用nodejs作前端控制器
参考淘宝UED《前后端分离的思考与实践》
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
本质上前端后端的区分是以“到用户的距离”划分的
比较通行的划分是在浏览器/客户端到服务器之间,以用户的http请求为准划线,js css dom flash ios android这些算前,后端负责业务和数据存储。因为通行的开源方案,rdbms配合缓存,队列,开源搜索引擎等等足以支持,于是这个直接的划分比较有效。客户端有十种,服务器也就不到百台,大家的责任任务比较平衡。
当厂子的量级大到一定程度,简单的开源方案很难盖的住大量的用户,水平扩容,立体的灾备等等问题。这时客户端还是10种,可服务器却一下子百台千台,一个机房一个机房来算了。此时,上述的普通划分就没有意义了。此时划分线便自然向后移动到业务和存储/支持之间,有了题主描述的“java后,php+js前”或是“cpp后,php+js前”之类的划分。
并不是php的角色变化了,而是原来insert into就写完的下单变得需要大量开发负责各种server运维告警负载均衡读写分离等等等等事情。
换种说法,10个开发的业务可能5个写jscss,5个写php,但100个开发的业务,可能就是10个jscss,10个安卓ios,35个写php,30个写c/java给php调用,还要有10个运维,5个组长
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
使用PHP做前端是说web服务,接口等用PHP编写,后台的数据逻辑用Java做。至于淘宝怎么做的。。。不清楚
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
通俗点说,前后端分离,就是服务化了,java做服务供各种客户端调用,当然包括php了。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
不建议这样做,淘宝在早期是全部 php 实现的,后面架构大调整,开始往 java 转换,所以遗留了一些 php实现 web 层,java只是提供后台服务这样的模式,这是由历史原因的,并不是由于这种方案合理。
在团队规模比较小、技术力量或业务流量都没有达到一定规模的情况下,建议都是用一种语言实现,这样不管是从效率上,沟通上等都会更好更合理。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
曾经做过类似的实验,所以可以给题主一些个人的看法以及相关的内容。
1)一个不完善的说明,初衷是说服架构师选择node做前段Controller。
2)一个未完成的项目,目的是给架构做一个演示站。
3)一个个人的实践网站,纯属自卖自夸。
总结一下,其实语言不是很重要,重要的分离的思想,以及带来的好处。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
没有人说淘宝是用PHP做前端呀。这里的“前端”只是说淘宝的架构也许是
HTML、JS、CSS -----& PHP -----& Java
这样的层次而已。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
FACEBOOK 把php 归为前端,C/C++才是后端
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
淘宝大部分业务模块是前端html引擎+java,有部分是html+nodejs+java,也有用php的。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
其实JAVA的角色相当于中间件,提供高性能的数据服务提供能力。并且数据层一般很少改变,而且JAVA在安全的性能上明显是强于PHP的,但是灵活性,发布麻烦。但是PHP这种脚本语言发布很容易,上线快。一般大的系统都是 view-&脚本语言(python,nodejs,php etc)-&c/c++/java 这种结构,这样的一个好处就是各自发挥优势,微博就是这种架构,淘宝中后期也是这样。目前各种语言百发齐放,不同的小业务不同的开发语言。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
哪里说淘宝前端用的PHP的, 你看下淘宝每年招人的JD不就知道了,用PHP用的很少
用PHP多的是Facebook, baidu, QQ
Facebook嫌PHP的性能差,有一个TEAM又用C++结合JIT做了一个HHVM
怎么说都不是PHP搞前端的节奏啊 是有些全栈的PHP框架比如Yii,但PHP是前端...
该答案已被忽略,原因:答非所问,不符合答题要求
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App

我要回帖

更多关于 苹果专卖店是正品吗 的文章

 

随机推荐