html5手机浏览器后退刷新页面,浏览器收到什么样的response就会刷新页面?

讨论了Web开发中页面刷新与Ajax的关系,解释了Ajax如何通过接管响应来实现页面局部更新,从而避免整体刷新。提到了早期的client-server模式、javascript、XMLHttpRequest的作用,以及后来的MVC模式和RESTful原则在减少服务器资源消耗方面的改进。还涉及了Page与Service的区别以及现代Web开发中的最佳实践。
摘要由CSDN通过智能技术生成

好奇怪哦。。我怎么会突然想到这个问题。

mumuliang

|

园豆:213

(菜鸟二级)

|

2013-09-11 15:45

@mumuliang: 我看了下楼下的所有答复感觉没准我的是对的。

以前client-server模式下没有“不刷新”的说法, 只要客户端发请求, 服务器答复了, 铁定刷新, 没跑。

后来不是大家觉得这样慢, 才发明了javascript么。

紧接着发现javascript只能处理本地内容, 他们想让服务器响应然后本地又“不想刷新”, 这时候才有“XMLHttpRequest”么。

这时候页面才有刷新与不刷新两种情况出现。

哪怕是load了一个iframe, 那也是刷新了, 只是刷新的是iframe的页面, 没有刷新主页面而已。

所以答案很明显了:只要没有特意用ajax做“不刷新”, 那么无论在服务器接收到什么, 都要刷新的。

undefined

|

园豆:698

(小虾三级)

|

2013-09-11 17:46

@undefined: 大崔你!你会成为一名优秀的销售人员!

那么特意用Ajax做的“不刷新”它得到的response和普通的response之间的决定性的差异在哪里?

mumuliang

|

园豆:213

(菜鸟二级)

|

2013-09-12 07:07

@mumuliang: 没有差异。 他们是一样的。 你看博客园很多地方就直接在ajax里面render一段html回来。 而实际上, render一段html是一种浪费, 因为html本身不是一个很“精炼”的描述方式。 所以大家会用xml(这个就是最初ajax里面的那个x)或者json来返回数据。 因为这样只返回数据, 所以服务器能少做很多事情, 压力会小很多。 仅此而已。你比如, 如果你用aspx页面直接做service, 来返回数据, 可以, 毫无问题, 但是微软在aspx上做的那些操作都是在凭空消耗服务器资源。 各种事件啊生命周期啊全都没用了(照跑, 只是跑了白跑, 没人在乎它)。 所以大家当时会用ashx来做。 ashx本身功能单一, 但是越单一的东西性能不就越好么。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 11:37

@mumuliang: 然后大家慢慢抽出了page和service的区别, 给大家一个错觉:好像page和service有什么本质不同似的。 你看你用nodejs写东西的时候, 哪有page和service的区别, 一律是write, write, write。。。。。。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 11:43

@mumuliang: 举个例子, 比如现在我回复你, 回复成功了, 页面没刷新, 但是提示我回复成功。 可以这么返回:回复成功!刷新评论

也可以这么返回:{success:true}

很显然下面的很节约资源吗。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 11:49

@undefined: 所以现在大家都不在aspx上做事了么?什么新东西又出现了?

mumuliang

|

园豆:213

(菜鸟二级)

|

2013-09-12 11:58

@mumuliang: MVC啊, MVC让一切变得极为简单, 只要返回不同的view就行了。 如果是返回JSON那么就返回JSON view, 如果是页面就返回view, 等等。 有一句话很精巧的概括了这一切(好像是RESTFUL里面提到的, 不是很确定): web本来就应该是简单的

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 12:00

@undefined: 可是创建mvc的时候也有问是用aspx还是cshtml呢

mumuliang

|

园豆:213

(菜鸟二级)

|

2013-09-12 12:02

@mumuliang: 这个看controller了。 用aspx和cshtml的还算页面, 但是也可以选择不返回页面, 直接返回数据。 这个便利在于, 以前, 相同的url, 如果从page变成service, 要做一些hack, 现在只要controller觉得他应该是service, 就可以直接是service了。 让你从node.js进入web, 就是让你少关心这些没用的东西, 就像让你学C的话绝对是让你写console程序, 而不是让你用MFC之类的东东。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 12:05

@mumuliang: 有时间可以再看下RESTFUL的那本书。 名字我忘了。你可以去皮皮书屋搜下。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 12:07

@undefined: 是一只猫还是一只四脚蛇?

mumuliang

|

园豆:213

(菜鸟二级)

|

2013-09-12 12:26

@mumuliang: 好像是蛇。 有没有脚就不记得了。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 13:44

@mumuliang: 猫猫猫!!! 我去下了个电子版看了下, 是猫的那本。 我不是说蛇那本不好, 那本我没看过所以不知道。

undefined

|

园豆:698

(小虾三级)

|

2013-09-12 13:48

应该是每一次response都会刷新页面,ajax的特殊支出是专门接管了response,自己来处理,这是我的理解

小AI

|

园豆:354

(菜鸟二级)

|

2013-09-17 12:32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值