惊闻京东居然是用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分类的所有分页必须更新,然后,按品牌、系列、价格区间、接口、核心的二级分类的所有列表页,也得更新一次!是不是这样做的呢?谢谢
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分类的所有分页必须更新,然后,按品牌、系列、价格区间、接口、核心的二级分类的所有列表页,也得更新一次!是不是这样做的呢?谢谢
解决方案 »
- DATALIST嵌套问题
- 编译的时候出错,求帮助
- JS实现无间断滚动图片时图片,停止了.
- Sql Server 2005服务器自动关闭
- NavigateUrl和DataNavigateUrlFields是什么
- 字符串问题!!
- ==================大家来看看啊,关于用C#程序备份数据库的问题。。。。。
- 一个用C#开发的WEB程序,在编译调试的时候出现一个错误,怎样解决啊,急!
- 在.Net中如何制作出3D类型的立体效果,就好象这个网址上的3D效果一样:http://home.so-net.net.tw/juinn99/Tuition/PI_Frame/OvalFrame.h
- 访问服务器端文件
- 请问中英文切换怎么实现???
- 求问vs中如何复制网页???????
生成静态页面思路大约有3种:
1、向服务器的动态页面发送请求,获取页面的html代码。这种方法缺点显而易见:速度慢。另外如果请求的动态页面有验证控件的话,返回的html页面却无法进行数据
2、从文件读取模版,替换模版中的参数后输出文件,这种方法的生成速度上比第一种要快许多,而且模版内容可以用工具任意编辑
3、如果生成的文件数量比较多,第二种方法就要反复读取模版内容,这时可以用第三种方法——直接将你的模版写在代码中,原理是利用System.IO中的类读写模板文件,然后用Replace替换掉模板中的标签,写入静态html
至于京东,商品等功能都是Asp.net做的吧,随便点击一个商品的网址 http://www.360buy.com/product/640706.html 就可以试出来的,如下图:
首先兄说的很专业,我又学到东西了。
但以这个CPU商品列表为例:http://www.360buy.com/products/670-677-678.html,该页面(其实所有商品列表页面都一样)每页共列出了9*4=36个商品,而这些商品的信息都是写在html页面中的,而不是只是一个骨架html,然后商品内容通过ajax动态加载。
所以我才很疑惑:每添加/删除一个商品,得更新多少页面啊?(而且每个大类、二级分类的所有分页都必须重新生成!)
以在卖的一款“英特尔(Intel)22纳米 酷睿i5 3450盒装CPU(LGA1155/3.1GHz/四核/6M三级缓存)”为例,它存于:
CPU主分类总列表页:http://www.360buy.com/products/670-677-678.html
品牌:英特尔(Intel):http://www.360buy.com/products/670-677-678-1310-0-0-0-0-0-0-1-1-1.html
系列:酷睿i7:http://www.360buy.com/products/670-677-678-0-7013-0-0-0-0-0-1-1-1.html
价格:1000-1999:http://www.360buy.com/products/670-677-678-0-0-1352-0-0-0-0-1-1-1.html
接口:LGA 1155:http://www.360buy.com/products/670-677-678-0-0-1352-8578-0-0-0-1-1-1.html
核心:四核:http://www.360buy.com/products/670-677-678-0-0-1352-0-1362-0-0-1-1-1.html
以及上列所有分类的复合分类页中,比如
http://www.360buy.com/products/670-677-678-1310-7013-1352-8578-1362-0-0-1-1-1.html也即:CPU分类又分为
品牌:2项+不限 = 3种页面(下同);
系列:12项
价格:5项
接口:8项
核心:7项也就是说,每添加一个CPU商品,可能需要更新3*12*5*8*7+1=10081个列表,而且每个列表又分类多页,再乘以若干页,这个数量惊人啊!
每个类别都有模板的。录入的时候提前加载了通用数据了。
CPU也就针脚为未必一样、频率、核心。
京东的后台你看不到,淘宝的录入商品的页面可是公开的。
第一:为什么查看它的源文件,却没有见到任何asp.net的痕迹。这个很有简单把<form runat="server"> 去掉就可以了。
第二:它的静态列表页是怎么做的。asp.net的静态页方法很多了。比较典型的可以用UrlRewriter。