这个还真不清楚。
我估计是“除了ajax任何请求都要刷”吧。
纯猜测,不负任何法律责任。
即使被顶500次也一样
好奇怪哦。。我怎么会突然想到这个问题。
@mumuliang: 我看了下楼下的所有答复感觉没准我的是对的。
以前client-server模式下没有“不刷新”的说法, 只要客户端发请求, 服务器答复了, 铁定刷新, 没跑。
后来不是大家觉得这样慢, 才发明了javascript么。
紧接着发现javascript只能处理本地内容, 他们想让服务器响应然后本地又“不想刷新”, 这时候才有“XMLHttpRequest”么。
这时候页面才有刷新与不刷新两种情况出现。
哪怕是load了一个iframe, 那也是刷新了, 只是刷新的是iframe的页面, 没有刷新主页面而已。
所以答案很明显了:只要没有特意用ajax做“不刷新”, 那么无论在服务器接收到什么, 都要刷新的。
@undefined: 大崔你!你会成为一名优秀的销售人员!
那么特意用Ajax做的“不刷新”它得到的response和普通的response之间的决定性的差异在哪里?
@mumuliang: 没有差异。 他们是一样的。 你看博客园很多地方就直接在ajax里面render一段html回来。 而实际上, render一段html是一种浪费, 因为html本身不是一个很“精炼”的描述方式。 所以大家会用xml(这个就是最初ajax里面的那个x)或者json来返回数据。 因为这样只返回数据, 所以服务器能少做很多事情, 压力会小很多。 仅此而已。你比如, 如果你用aspx页面直接做service, 来返回数据, 可以, 毫无问题, 但是微软在aspx上做的那些操作都是在凭空消耗服务器资源。 各种事件啊生命周期啊全都没用了(照跑, 只是跑了白跑, 没人在乎它)。 所以大家当时会用ashx来做。 ashx本身功能单一, 但是越单一的东西性能不就越好么。
@mumuliang: 然后大家慢慢抽出了page和service的区别, 给大家一个错觉:好像page和service有什么本质不同似的。 你看你用nodejs写东西的时候, 哪有page和service的区别, 一律是write, write, write。。。。。。
@mumuliang: 举个例子, 比如现在我回复你, 回复成功了, 页面没刷新, 但是提示我回复成功。 可以这么返回:<span class="xxx">回复成功!<span><a onclick="xxxx">刷新评论</a>
也可以这么返回:{success:true}
很显然下面的很节约资源吗。
@undefined: 所以现在大家都不在aspx上做事了么?什么新东西又出现了?
@mumuliang: MVC啊, MVC让一切变得极为简单, 只要返回不同的view就行了。 如果是返回JSON那么就返回JSON view, 如果是页面就返回view, 等等。 有一句话很精巧的概括了这一切(好像是RESTFUL里面提到的, 不是很确定): web本来就应该是简单的
@undefined: 可是创建mvc的时候也有问是用aspx还是cshtml呢
@mumuliang: 这个看controller了。 用aspx和cshtml的还算页面, 但是也可以选择不返回页面, 直接返回数据。 这个便利在于, 以前, 相同的url, 如果从page变成service, 要做一些hack, 现在只要controller觉得他应该是service, 就可以直接是service了。 让你从node.js进入web, 就是让你少关心这些没用的东西, 就像让你学C的话绝对是让你写console程序, 而不是让你用MFC之类的东东。
@mumuliang: 有时间可以再看下RESTFUL的那本书。 名字我忘了。你可以去皮皮书屋搜下。
@undefined: 是一只猫还是一只四脚蛇?
@mumuliang: 好像是蛇。 有没有脚就不记得了。
@mumuliang: 猫猫猫!!! 我去下了个电子版看了下, 是猫的那本。 我不是说蛇那本不好, 那本我没看过所以不知道。
应该是每一次response都会刷新页面,ajax的特殊支出是专门接管了response,自己来处理,这是我的理解
这个问题有意思,我觉得只要服务器返回的状态码不是304,浏览器必然要刷新页面
啊。。原来是这样。。
之前一直在猜是不是有个头叫做什么不刷新之类的。。=v=
@mumuliang: 根据状态码判断下面该干什么活
呃,304是不是还是会根据本地缓存来重新解释一遍页面文件?就是说,会不会重新加载一次页面?
@mumuliang: 页面还是需要重新解析的
只要浏览器发送了请求,并且响应内容在不包含动态内容且发生过更改,那么浏览器就会刷新。
不包含动态内容的意思是?
@mumuliang: 比如一些 js ,它们可以在页面呈现后局部更新页面。
应该是和返回的状态码有关的,content-type只是说明了返回的内容类型。
嗷。。
@mumuliang: 具体细节你可以查询http协议以及浏览器实现方面的材料参考。