首页 新闻 搜索 专区 学院

博客园提问时标签即时提示怎么会这么快?

0
[已解决问题] 解决于 2014-06-15 16:22

博客园提问时标签即时提示怎么会这么快?

随便输入一个字符马上就可以显示相关标签列表,数据是存在哪里呢?如果是存在缓存中也不至于这么快吧。

小徐的博客的主页 小徐的博客 | 初学一级 | 园豆:10
提问于:2014-06-13 23:26
< >
分享
最佳答案
0

在网页加载之后就直接从http://q.cnblogs.com/tag/GetActiveTag加载了所有当前活跃的tag列表了,而不是等到你输入字符才去服务器请求。所以,当你输入第一个字符的时候,Javascript只是从已经加载的数据里搜索出相关的条目来显示,速度就非常快了。本身没有什么特别的技术难点在里面。

奖励园豆:5
deltamaster | 菜鸟二级 |园豆:229 | 2014-06-15 13:58

总不能直接加载客户端吧,就拿博客园来说标签那么多,肯定是从服务端获取。服务端应该是存在缓存中了。问题我也是直接从缓存中获取,怎么会这么慢呢?

小徐的博客 | 园豆:10 (初学一级) | 2014-06-15 16:10

@小徐的博客: 慢的原因可以有很多啊,博客园这个例子,数据量3.1k,整体响应时间50ms。你可以直接从上面地址看看取到了点什么数据。

要说速度快不快其实无所谓,不知道你有没有注意看我的回答。博客园在页面加载完以后就立刻发出AJAX请求拿到这个列表,站在用户的角度,从页面加载完成到开始填写tag,这个列表再慢也已经从服务器下载完成了。

再说博客园这个例子,就算从用户开始填写tag开始才发出AJAX请求,50ms也感觉不到明显延迟。你说你那么慢,如果你会用一些开发者工具就可以自己找到性能的瓶颈在哪里,比如用Chrome的开发者工具。时间是耗费在你机器到服务器建立TCP连接?还是发送数据?还是等待服务器响应的时间?还是从服务器下载response正文的时间?如果你就说慢,是没法定位问题的。

deltamaster | 园豆:229 (菜鸟二级) | 2014-06-15 16:21

@deltamaster: 非常感谢!!!

小徐的博客 | 园豆:10 (初学一级) | 2014-06-15 16:22
其他回答(1)
0

查看源文件里面没有,应该是Ajax拉的服务器上的

happydaily | 园豆:377 (菜鸟二级) | 2014-06-14 08:23

我知道是在在服务器上获取的,我就不明白为什么速度能有这么快? 我现在也是直接从缓存中获取,但还是需要有1.5秒左右的停顿

支持(0) 反对(0) 小徐的博客 | 园豆:10 (初学一级) | 2014-06-14 10:34

@小徐的博客: 可能站长做了缓存,像这种标签可以每天晚上去数据库里统计下,然后把结果存到缓存里,然后直接从缓存里拿,就快多了。

支持(0) 反对(0) happydaily | 园豆:377 (菜鸟二级) | 2014-06-14 14:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册