目的:进度条显示一直加载中,但是内容正常显示
|
geyingNov 28, 2018
1
访问个静态资源 然后服务器不要响应 这样可行不。。。
|
|
chanchanNov 28, 2018
2
document.ready 提交一个表单,后台 while true
|
|
519718366Nov 28, 2018
3
写个 bug ?(逃~
|
|
whileFalseNov 28, 2018
4
只要让 http 连接能够建立但不返回即可。Node.JS 很容易实现,PHP 不清楚。
能透露这个需求是什么吗? |
|
iblessyouNov 28, 2018
5
不是很懂想干嘛
如果是网页内的进度条,随便弄个动画就行,放在那看看就好 还是手机打开网页时的那种进度条。。。呃 |
|
7
做个假的加载条
|
|
zhengwenkNov 28, 2018
8
如果只是要效果,用 html+css 写一个进度条放上去。
|
|
ninestepNov 28, 2018
9
写个静态页面上面放一个进度条,不变不就行了
|
|
13
@whileFalse 客户要求的,怪得很
|
|
lupoNov 28, 2018
14
目的是防 selenium 类的爬虫?
|
|
guolaopiNov 28, 2018
20
放个 GIF 挡住页面所有元素
|
|
YishanshanNov 28, 2018 via Android
21
这个我之前手机刷知乎的时候遇到过,进度条不停地重置但是内容显示完全
|
|
YishanshanNov 28, 2018 via Android
22
@Baymaxbowen emmm,chrome 里面看的
|
|
whileFalseNov 28, 2018
23
@cunzhen 用 js 载这个资源应该可以
|
|
uTOmOuk3L6sb4MSINov 28, 2018 via iPhone
24
|
|
desNov 28, 2018 via Android
26
如果是 fpm 的话,好像是做不到,会把进程池占满,后面的连接不能处理了。
浏览器的超时我不是特别清楚,好像可以一次只发一点点数据,保持连接不断开。 你这什么鬼奇葩需求? |
|
chinvoNov 28, 2018 via iPhone
28
你这什么奇葩需求,Ajax/websocket 了解一下?
|
|
frank611Nov 28, 2018 via Android
29
在子 iframe 中隔一段时间请求一次,后台不响应,主页面可以正常刷新,但状态会一直显示在加载
|
|
30
如果解决不了问题,就解决提问题的人
|
|
POPOEVERNov 28, 2018
31
每三十秒发一个搜索请求给 google
|
|
33
”你回复过于频繁了,请稍等 1800 秒之后再试“,我靠,我等了两小时
|
|
leave01Nov 28, 2018
37
很简单,引用一个 CSS,然后 CSS 所在的服务器返回 Content-Length 填个大的,返回空白,这样就能一直转圈圈了
|
|
40
回复有限制,没有回复到的朋友请见谅,没想到这个帖子点击率这么高😂
|
|
42
@Baymaxbowen 我还跑去知乎搜索半天,后来才看懂你的回复 😂
|
|
leave01Nov 28, 2018
43
@cunzhen 可以加载,最简单的
<link rel="stylesheet" type="text/css" href="style.php"> 引用后端文件,然后后端里 <?php sleep(1000); 引用 CSS 的语句放在页面最后,这样内容能加载出来,但会一直转圈圈 |
|
otakustayNov 28, 2018
44
放一个永远不会完成的 iframe 就行了,用其它类型的资源容易卡住页面
|
|
u3uNov 28, 2018
45
```html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> </head> <body> <div>loading...</div> <script> function pending() { var script = document.createElement('script'); script.src = 'https://google.com'; // 可换成一个任意无法连接的地址 script.onabort = pending; script.onerror = pending; document.body.appendChild(script); } pending(); </script> </body> </html> ``` 测试可行 不过手动点击浏览器的停止加载按钮还是会失效 不明白为什么会有这种需求 😓 |
|
1010543618Nov 28, 2018
46
后台一直积累服务器肯定受不了啊,可以前端做个假的一直加载的进度条
|
|
47
不合理的需求,就一定要挖出背后的原因,然后看看有没有其他方法去实现最初的目的
你用半桶水的方法实现不合理的需求,那后面肯定还要找你擦屁股,得不偿失 请求不返回?那我同时发起多个请求,不就把你服务器撑爆了? |
|
C0VNNov 28, 2018
48
https://www.jianshu.com/p/4aa085b9984b
5.2 基于 Iframe 及 htmlfile 的流( http streaming )方式 “但是这种方式有一个明显的不足之处:IE、Morzilla Firefox 下端的进度栏都会显示加载没有完成,而且 IE 上方的图标会不停的转动,表示加载正在进行。Google 的天才们使用一个称为“ htmlfile ”的 ActiveX 解决了在 IE 中的加载显示问题,并将这种方法应用到了 gmail+gtalk 产品中。” |
|
C0VNNov 28, 2018
49
https://zhuanlan.zhihu.com/p/37365892 全双工通信的 WebSocket
1. 基于 Iframe 及 htmlfile 的流( Iframe Streaming ) iframe 流方式是在页面中插入一个隐藏的 iframe,利用其 src 属性在服务器和客户端之间创建一条长链接,服务器向 iframe 传输数据(通常是 HTML,内有负责插入信息的 JavaScript ),来实时更新页面。iframe 流方式的优点是浏览器兼容好。 “使用 iframe 请求一个长连接有一个很明显的不足之处:IE、Morzilla Firefox 下端的进度栏都会显示加载没有完成,而且 IE 上方的图标会不停的转动,表示加载正在进行。” |
|
52
@u3u 感谢您贴出了代码,测试后发现载入一定时间之后,会造成浏览器超时,浏览器停止了该加载。以及页面的 setTimeout 失效了,给 pending();添加 setTimeout 后,pending();失效。
|
|
53
@xavierskip 非常感谢大佬,还特意去翻看了文档,使用 Iframe 去链接一个没有相应的资源吗?
|
|
ChoateYaoNov 28, 2018
57
ob_start ob_get_clean ob_flush flush 这些函数能帮助你实现这个功能,别关注性能。
|
|
59
@xavierskip 奇葩需求多的是
|
|
jugeliziNov 28, 2018
61
以前也遇到一个客户 需求是把网页打开弄慢点 Orz
|
|
enjoyCodingNov 28, 2018 via iPhone
63
现在用 Promise 发请求好像是能取消的?每隔三十秒访问他们说的不给返回的接口 三十秒后取消
|
|
necomancerNov 29, 2018
64
我发现很多网站因为有 google 的 js,字体等一系列东西会有一个非常非常长的加载时间……
|
|
haloheroNov 29, 2018
65
|
|
DengMrNov 29, 2018
66
nprogress
|
|
shingleNov 29, 2018 via Android
67
后端实现 http response flush
|
|
68
返回流?
比如这个 time.gif https://hookrace.net/blog/time.gif/ |
|
crabNov 29, 2018
70
加载个 url,2 个 301 重定向互相指。
|
|
qiukongNov 29, 2018
72
<?php
$wait=600; //服务器执行程序能撑多少秒就设置多少秒,大于访客能承受的时间就够了。 set_time_limit($wait); echo '这是开头<br />'; echo '这是结尾<br />'; ob_flush();flush(); sleep($wait); ?> |
|
ccnccyNov 29, 2018 via iPhone
73
在服务器放个 100g 的文件,然后每个页面自动加载它。
|
|
maxxfireNov 29, 2018
74
别啥需求都满足它,搞技术的就是纯良。。
|
|
8023Nov 29, 2018 via Android
75
搞一个带宽只有 10k 的服务器,里面放一个 100g 的文件,网页最后面载入它。
|
|
northernlightsNov 29, 2018
76
frontend:
request(){ ajax({ async:true, fail:()=>request() }) } server: sleep(1000*60*60*24*365*10)//10years |
|
cccy0Nov 29, 2018
77
感觉有的人已经被安排了
|
|
lanjzNov 29, 2018
78
服务端 sleep 30s,js 每 29s 插入到 html 去加载
|
|
irgilNov 29, 2018
79
想后端发起 http 请求,后端建立连接但是 hold 住不返回。超时后前端自动关闭并立即建立新的请求链接即可
|
|
ntdllNov 29, 2018
80
|
|
81
我猜需求是放在微信浏览器内,页面不加载完无法举报投诉吧 > _ >
|
|
mywowoNov 29, 2018
82
chuncked
|
|
dapp98230Nov 29, 2018
83
做个 flash 小动画。。一直 loading 圆圈一直转。。。或者跟微信内打开某些链接一样的。。其实东西打不开的,但是他的那个绿条在慢慢地爬,,给你无限的希望
|
|
85
@enjoyCoding 试试
|
|
88
@northernlights 不给响应咩~
|
|
89
@happuiness 还有这种 BUG ?不过这是 PC 端的网页呢
|
|
90
@northernlights 10 年有点狠。。。。哈哈哈
|
|
jimrokNov 29, 2018
92
使用 stream 方式,http 的协议上没有 content-length,所以一直不会被关闭,server 端隔一段时间,flush 一下数据,只要不 close,就可以样网页一直在加载。最早的聊天室都是这样做的。
|
|
northernlightsNov 30, 2018
94
@cunzhen sleep 了 10 years 就是不响应,但是 js 应该有个 timeout 吧,timeout 了就进入 fail 函数中无穷递归!
|
|
jimrokNov 30, 2018
95
@cunzhen PHP 我不会,主要是利用 Transfer-Encoding: chunked 的编码,可以看看 http://imweb.io/topic/579f00de93d9938132cc8da4
|
|
phpdevDec 2, 2018
97
做个 gif,显示”加载中“
|
|
99
谢谢各位大佬的热心回答,最后使用页内加载条解决了,当加载进度到达 90%时,放缓加载条的速度,让它永远无法 100% 😂
|