是不是content-type: text/html的数据包一到,浏览器就肯定刷新页面?
2013-09-12 12:58
423 查看
整理自:http://q.cnblogs.com/q/54726/
是不是content-type: text/html的数据包一到,浏览器就肯定刷新页面? 或者说,浏览器收到的状态正常的content-type:text/html这种数据。。。除了把它解析成网页显示出来,还有什么可能? 其实还是想关心到底什么时候浏览器会刷新页面。听到一种说法是url不改变的时候,或者不发生重定向的时候,页面是不会刷新的。
以前client-server模式下没有“不刷新”的说法,只要客户端发请求,服务器答复了,铁定刷新,没跑。 后来不是大家觉得这样慢,才发明了javascript。(编注:比如响应按钮换个页面背景颜色什么的,突然想起这个功能好像在世纪之交那几年的站点好流行的。)紧接着发现javascript只能处理本地内容,他们想让服务器响应然后本地又“不想刷新”,这时候才有“XMLHttpRequest”,才有刷新与不刷新两种情况出现。 哪怕是load了一个iframe,那也是刷新了,只是刷新的是iframe的页面,没有刷新主页面而已。 所以答案很明显了:只要没有特意用Ajax做“不刷新”,那么无论在服务器接收到什么,都要刷新的。 (编注:关于这个大小写,看到过的一种说法是Ajax都指那种使用xmlhttp..的技术,AJAX指MS在ASP.NET中提供的跟Ajax相关的那套。)
那么特意用Ajax做的“不刷新”它得到的response和普通的response之间的决定性的差异在哪里?
答案是没有差异。他们是一样的。你看博客园很多地方就直接在ajax里面render一段html回来。而实际上,render一段html是一种浪费,因为html本身不是一个很“精炼”的描述方式。所以大家会用xml(这个就是最初ajax里面的那个x)或者json来返回数据。因为这样只返回数据,所以服务器能少做很多事情,压力会小很多。仅此而已。比如,如果你用aspx页面直接做service,来返回数据,可以,毫无问题,但是微软在aspx上做的那些操作都是在凭空消耗服务器资源。各种事件啊生命周期啊全都没用了(照跑,只是跑了白跑,没人在乎它)。所以大家当时会用ashx来做。ashx本身功能单一,但是越单一的东西性能不就越好么。 然后大家慢慢抽出了page和service的区别,给大家一个错觉:像page和service有什么本质不同似的。你看你用nodejs写东西的时候,哪有page和service的区别,一律是write, write, write。。。。。。
所以现在大家都不在aspx上做事了么?什么新东西又出现了?
MVC啊,MVC让一切变得极为简单,只要返回不同的view就行了。如果是返回JSON那么就返回JSON view,如果是页面就返回view,等等。有一句话很精巧的概括了这一切(好像是RESTFUL里面提到的, 不是很确定): web本来就应该是简单的
可是创建mvc的时候也有问是用aspx还是cshtml呢?
这个看controller了。用aspx和cshtml的还算页面,但是也可以选择不返回页面,直接返回数据。这个便利在于,以前,相同的url,如果从page变成service,要做一些hack,现在只要controller觉得他应该是service,就可以直接是service了。(其他略)
是不是content-type: text/html的数据包一到,浏览器就肯定刷新页面? 或者说,浏览器收到的状态正常的content-type:text/html这种数据。。。除了把它解析成网页显示出来,还有什么可能? 其实还是想关心到底什么时候浏览器会刷新页面。听到一种说法是url不改变的时候,或者不发生重定向的时候,页面是不会刷新的。
以前client-server模式下没有“不刷新”的说法,只要客户端发请求,服务器答复了,铁定刷新,没跑。 后来不是大家觉得这样慢,才发明了javascript。(编注:比如响应按钮换个页面背景颜色什么的,突然想起这个功能好像在世纪之交那几年的站点好流行的。)紧接着发现javascript只能处理本地内容,他们想让服务器响应然后本地又“不想刷新”,这时候才有“XMLHttpRequest”,才有刷新与不刷新两种情况出现。 哪怕是load了一个iframe,那也是刷新了,只是刷新的是iframe的页面,没有刷新主页面而已。 所以答案很明显了:只要没有特意用Ajax做“不刷新”,那么无论在服务器接收到什么,都要刷新的。 (编注:关于这个大小写,看到过的一种说法是Ajax都指那种使用xmlhttp..的技术,AJAX指MS在ASP.NET中提供的跟Ajax相关的那套。)
那么特意用Ajax做的“不刷新”它得到的response和普通的response之间的决定性的差异在哪里?
答案是没有差异。他们是一样的。你看博客园很多地方就直接在ajax里面render一段html回来。而实际上,render一段html是一种浪费,因为html本身不是一个很“精炼”的描述方式。所以大家会用xml(这个就是最初ajax里面的那个x)或者json来返回数据。因为这样只返回数据,所以服务器能少做很多事情,压力会小很多。仅此而已。比如,如果你用aspx页面直接做service,来返回数据,可以,毫无问题,但是微软在aspx上做的那些操作都是在凭空消耗服务器资源。各种事件啊生命周期啊全都没用了(照跑,只是跑了白跑,没人在乎它)。所以大家当时会用ashx来做。ashx本身功能单一,但是越单一的东西性能不就越好么。 然后大家慢慢抽出了page和service的区别,给大家一个错觉:像page和service有什么本质不同似的。你看你用nodejs写东西的时候,哪有page和service的区别,一律是write, write, write。。。。。。
所以现在大家都不在aspx上做事了么?什么新东西又出现了?
MVC啊,MVC让一切变得极为简单,只要返回不同的view就行了。如果是返回JSON那么就返回JSON view,如果是页面就返回view,等等。有一句话很精巧的概括了这一切(好像是RESTFUL里面提到的, 不是很确定): web本来就应该是简单的
可是创建mvc的时候也有问是用aspx还是cshtml呢?
这个看controller了。用aspx和cshtml的还算页面,但是也可以选择不返回页面,直接返回数据。这个便利在于,以前,相同的url,如果从page变成service,要做一些hack,现在只要controller觉得他应该是service,就可以直接是service了。(其他略)
相关文章推荐
- html页面中的<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,utf-8什么用?
- 被包含的页面,要与当前页<%@ page/>内容要一致,不允许contentType="text/html; charset=UTF-8",有空格
- "Content-Type" content="text/html; charset=utf-8"中content="text/html是啥意思呢?
- HTML页面的<script type="text/javascript">含义。
- iOS"Request failed: unacceptable content-type: text/html"
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法
- <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; ch
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- header("Content-type:text/html;charset=gb2312")所引起的POST接收乱码
- AF:Request failed: unacceptable content-type: text/html"
- iOS 使用AFNetworking遇到异常 Request failed: unacceptable content-type: text/html
- AFNetworking 报错 Request failed: unacceptable content-type: text/html
- Jsoup获取部分页面数据失败 org.jsoup.UnsupportedMimeTypeException: Unhandled content type. Must be text/*, application/xml, or application/
- iOS 使用AFNetworking遇到异常 Request failed: unacceptable content-type: text/html
- header("Content-type:text/html;charset=utf-8");
- 使用AFNetworking遇到异常 Request failed: unacceptable content-type: text/html
- 报错:Request failed: unacceptable content-type: text/html
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">意思?
- <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; ch
- iOS开发 AFNetWork "Request failed: unacceptable content-type: text/html"