日期:2014-05-17  浏览次数:20382 次

惊闻京东居然是用asp.net做的。求它的商品列表静态页是怎么实现的
惊闻京东居然是用asp.net做的,当然只是用户登录后的页面。(网页后缀为aspx),

第一:为什么查看它的源文件,却没有见到任何asp.net的痕迹?比如注册页面:
https://passport.360buy.com/new/login.aspx
查看其源文件,并没有见到<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=好长的base64字符串>这个东东?要知道,在aspx页面上,即使设置EnableViewState=false,其页面仍会有这个hidden的啊!京东的页面到底是怎么做到所这个hidden完全干掉的?

第二:它的静态列表页是怎么做的?
比如:
CPU商品的i7系列的列表页:
http://www.360buy.com/products/670-677-678-0-7013-0-0-0-0-0-1-1-1.html
CPU商品的i5系列的列表页:
http://www.360buy.com/products/670-677-678-0-1376-0-0-0-0-0-1-1-1.html

我们从中可以看出,.html前面那些长长的数字,是对应着每一个分类的各种筛选。
我们相信这些html是物理存在服务器的,而不是使用URL映射之类的伪静态(相信京东这么做的目的是为了提高页面访问速度,应该不是使用伪静态)

可是这样,每添加一个商品,得更新多少html页面啊?
比如添加一个CPU上去,则CPU分类的所有分页必须更新,然后,按品牌、系列、价格区间、接口、核心的二级分类的所有列表页,也得更新一次!是不是这样做的呢?

谢谢

------解决方案--------------------
这个很简单。asp.net网站我们可以先简单分为“有回发、无回发”两种。对于无回发的网页,那么程序员创建一个aspx之后第一件事,是吧asp.net自动产生的 <form id="form1" runat="server"><div></div></form> 彻底删掉,根据html/javascript开发人员的习惯里编写网页。偶尔地,某些部分可能临时有<form></form>需要加上,但是这不是asp.net最初的那个大<form runat="server"></form>的概念了。

这个不要乱说什么“不使用asp.net服务器控件”。例如Label、Repeater控件等等,你怎么知道不用?

但是我要强调地是,这是面向媒体的网站网页,而不是企业web应用程序。假设你要使用asp.net开发交互式企业交易应用程序,那么当然还是要使用原来的asp.net模式。只不过这样,我们也还是立刻就看到了asp.net所作出的交互应用在界面操作刷新方面的级差的用户体验。

asp.net由于其自身没有跟上ajax潮流这个问题(也就是微软的问题)而早已经失去了web前端开发方面的所见即所得的水平了,asp.net项目组最近几年靠整一些什么mvc概念也就是忽悠一些还对微软留有幻想的人。
------解决方案--------------------
引用:
也即:CPU分类又分为
品牌:2项+不限 = 3种页面(下同);
系列:12项
价格:5项
接口:8项
核心:7项

也就是说,每添加一个CPU商品,可能需要更新3*12*5*8*7+1=10081个列表,而且每个列表又分类多页,再乘以若干页,这个数量惊人啊!……


每个类别都有模板的。录入的时候提前加载了通用数据了。
CPU也就针脚为未必一样、频率、核心。
京东的后台你看不到,淘宝的录入商品的页面可是公开的。