如何让 AJAX 请求 加载的慢一点

2014-11-20 13:36:47 +08:00
 typcn
我写了个 blog 系统,google 了一个加载动画,结果发现,动画还没开始播放,页面已经加载完了,如何让请求慢一点,或者是在动画完全覆盖网页之后再开始加载。不然感觉有点不协调了。。





地址 http://blog.eqoe.cn/

手打的 js 和 css 都是没有压缩的,除了 jquery
4257 次点击
所在节点    问与答
35 条回复
justplaymore
2014-11-20 16:04:42 +08:00
用promise来实现,参阅jQuery的deferred对象
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
$.ajax(...).done(...).done(...);

将异步流程改成顺序执行,而不应该从时间轴上去取巧,异步时间轴是不可预测的。
tmkook
2014-11-20 16:04:44 +08:00
加个时间统计,1秒以内就延迟1秒,如果超过1秒就不延迟
dong3580
2014-11-20 16:19:15 +08:00
jasonslyvia
2014-11-20 16:23:53 +08:00
一堆人出馊主意,楼主明显是舍本逐末啊,为了显示动画而显示动画,根本就失去了加载动画的原本用意……
fengchang
2014-11-20 16:32:13 +08:00
典型的没有需求制造需求。别人都是因为加载太慢怕用户失去耐心才做加载动画,你速度这么快做什么动画。
typcn
2014-11-20 16:45:12 +08:00
@jasonslyvia
@fengchang 解决了 我有强迫症 想让慢网络和快网络能一样,加了个动画。。
lygmqkl
2014-11-20 16:56:05 +08:00
setTimeout 把压力方到客户端。 其实这种东西 会审美疲劳的。。。每次都放,然后也没读出多少数据来。。。用户会想,好烂的服务器啊。
typcn
2014-11-20 17:00:11 +08:00
@lygmqkl 我已经解决了这个问题 ,你可以点击链接访问一下试试效果
yanleijava
2014-11-20 17:03:09 +08:00
sucess里面 sleep
justplaymore
2014-11-20 17:16:33 +08:00
好吧解决了 又离 Callback hell 近了一步

给 loader.show() 加了一个callback参数

在 OnAnimateEnd 的 Callback 中 执行show事件的callback

==========================

额,避免用callback写法,promise就是用来解决callback hell的,用deferred对象的resolve和reject方法来处理执行状态,可以避免callback依赖,只改变deferred对象的状态,前面的链接里文章讲得很清楚了。
p2p
2014-11-20 18:24:26 +08:00
数据获取 加callback

太快时再加延迟,保证你的动画有机会涨姿势
typcn
2014-11-20 18:28:14 +08:00
@p2p 不是。。。我是怕页面已经加载完动画才播放,我不希望用户看到DOM变化,在动画播放的0.5秒内加载页面而不是还没开始播放就在0.1秒内加载完了页面,,。。。
Phariel
2014-11-20 18:31:18 +08:00
不要陷入callback hell, 前端现在都是promise封装。你先学习一下promise的理论知识,然后用这个https://github.com/cujojs/when 这算一个比较好的promise实现库,当然jQuery也有promise的实现,任君选择。
lygmqkl
2014-11-20 22:16:34 +08:00
帮你抓个bug, Mac os x, Safari 点入一个主题,可以成功打开,然后使用后退按钮无效。
aiguozhedaodan
2014-11-20 23:05:55 +08:00
楼主你博客的速度真的好快……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/147985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX