易语言如何制作自动刷新网页
实际上自动刷新是很常见的,大体上可以分为三种级别。
1.
实时通信
。比如用WebSocket做一个网页聊天室什么的,因为本身就要求基本上绝对的实时性,所以自动刷新是非常有必要的。2.
局部刷新
。常见的方法是使用Ajax,只刷新网页的某个部分。比如某个页面有一个表单或者列表之类的,需要保持最新内容,但这种情况往往不需要重置整个表,只需要增加一行或者删除一行,只要用户正在操作的那个DOM没有变化,用户的操作就基本不会被打断。另一种常见的思路是只刷新通知栏(比如在右上角放一个小红点,告诉你有新的了,或者在某个地方放个文本框写着有新内容),你什么时候觉得可以看新内容自己点击刷新就好。3.
页面重载
。就相当于点击浏览器的刷新,会重新加载整个页面。这种方法是有很多问题的,比如:我想复制内容(或者另存图片),刚选中,呵呵。
我在看里面的一部分长内容,还没看完,呵呵。
我掉网了,本来想继续浏览的,马上就变成网页无法显示了。(前两种只需要弹出一个提示)
我在看别的网页,就是受不了那个标签的图标总是转啊转。
等等
总的来说,除非是有特殊需要,一般不管是后台、前端、UI、UX都不会无聊到定时重载页面的,用户体验是整个应用(Web Application也是应用,不仅仅是Native Applicable)非常重要的一部分。如果有的话基本上是他自己也不上自己的网站。ajax数据传输技术
ajax :就是在不刷新网页的基础上,能够实现和服务器的通信。常见的数据传输的方式:
--xml: 笨重,但是XML是通用的数据交换格式。
--HTML:不需要解析,可以直接放入文档中,用于只是更新部分代码的情况。
--json:轻巧。许多java中的类和集合可以使用第三方的jar包转换为json对象。
网页一直显示跳转中无法打开
泻药
理论上不能,首先我们需要理解浏览back的机制。
一般来说在访问页面的时候,只要跳转,URL就会发生变化,浏览器会以堆栈的形式记录下你的访问历史。
而在back的时候,浏览器会访问历史堆栈里的上一条记录。
那我们来看看有多少种方式可以跳转。
JS实现的跳转
例如从A打开的B,然后B上有一行window.location.href=C,那么页面就会跳转到C。
对于浏览器来说,这个过程一共3个页面参与。但是对于用户来说,由于B页面存在的时间非常短,所以感觉只有2个页面。在用户点击“back”时,用户的目的是回到A,但是事实上返回到了B。而B页面上又有向C跳转的脚本,这样用户又回到了C。感觉是back无效。
这种状况就会出现题主说的“拼手速”的方法,不停的点击back,在B页面加载完成执行脚本前,再back就可以回到A。
如果禁用浏览器的JS,的确可以不用拼手速但是需要点击两下back就可以从C回到A,但是却无法从A正常跳转到C。
重定向实现的跳转
这个属于Http协议级别东西,例如301跳转,这个跳转是服务器强制的。这种是避免不了的。
Ajax局部刷新
这种方式在现代网站建设中比较常见,这种跳转方式比起整个页面刷新的体验要好很多。可以由于局部刷新,本身并未发生实质性的页面跳转,永远停留在第一个地址,浏览器也不会记录history,自然连back键都不能点。
但是多数这种网站会用hashcode或者window.history.pushstate的方式来重写URL使得浏览器可以纪录一个history,然后再监听url的变化解析url更新页面内容。
如果你遇到的网站没有对URL做操作...放弃吧,你怎么也拯救不了这么烂的网站了。
当然,有的网站缺德的不用window.history.pushstate而是用window.history.replacestate,看着URL在一直变,但是back键就一直是灰的。
还没有评论,来说两句吧...