是不是content-type: text/html的数据包一到,浏览器就肯定刷新页面?
整理自: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的数据包一到,浏览器就肯定刷新页面?的更多相关文章
- 遇到问题之“postman报Unsupported Media Type: Content type 'text/plain;charset=UTF-8' not supported”
postman报Unsupported Media Type: Content type 'text/plain;charset=UTF-8' not supported postman之所以报Uns ...
- {"timestamp":"2019-11-12T02:39:28.949+0000","status":415,"error":"Unsupported Media Type","message":"Content type 'text/plain;charset=UTF-8' not supported","path":&quo
在Jmeter运行http请求时报错: {"timestamp":"2019-11-12T02:39:28.949+0000","status&quo ...
- sessionStorage记录返回前端的数据,用于解决登录拦截器刷新页面的问题
1.问题出现的场景与解决 实现一个登录拦截器,重写doFilter方法,判断用户的登录状态,在用户长时间未操作或者异地登录时前端进行提示,完整代码如下 public class LoginValida ...
- AFNetworking request failed unacceptable content type text/html
今天体验AFNetwork 3.1.0 进行数据解析,但是解析数据控制台一直都输出这样的 error 结果: 于是,照着以前AFN2.+版本的进行设置: 结果发现在新版本的 AFN 上不能设置了.既然 ...
- LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)
form.on('submit(mySearch)', function(data){ table.reload('userTable', {//就会读取后台数据,重新加载: page: { curr ...
- No handler for type [text] declared on field [content]
Install 1.compile checkout ik version respective to your elasticsearch version git checkout tags/{ve ...
- 多CPU下基于e1000e驱动的数据包以及网卡中断流程分析.doc
http://wenku.baidu.com/link?url=mMKDH_fKmUXN7L6rANIFHjoHdKCYBLlDrqoYB1daDTEkNFk9Bt9xlJtS_4BKBj6w22WD ...
- 可否控制<link type=text/css rel=stylesheet href=style.css>
本篇文章主要介绍了"可否控制<link type=text/css rel=stylesheet href=style.css> ", 主要涉及到可否控制<lin ...
- input type =text,按回车键自动提交
1.当form表单中只有一个<input type="text" name='name' />时按回车键将会自动将表单提交 <form id='form1' ac ...
随机推荐
- 用substr()截取中文出现乱码的解决方法
截取中文字符串时出现乱码(使用substr()函数) 程序一:PHP截取中文字符串方法 function msubstr($str, $start, $len) { $tmpstr = &quo ...
- Xcode集成开发环境的安装
Xcode是苹果官方提供的iOS开发环境,安装方式如下: 安装过程需要登录AppleID账号,如果你没有苹果账号,可以免费注册一个.根据提示就能完成Xcode安装.
- 通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)
前言 我们在做web系统中,导出也是很常用的一个功能,如果每一个数据列表都要对应写一个导出的方法不太现实.现在就想设计一个共通的功能来实现这个导出. 需求分析 在开始之前我们先要明白我们要实现怎样一个 ...
- 服务器端与客户端TCP连接入门(三:多线程)
对于服务器端来说,如果要加入多线程机制,则应该在每个用户连接之后启动一个新的线程 建立一个EchoThread类,此类专门用于处理多线程操作,此时的多线程使用Runnable接口实现 package ...
- iOS开发资源整理【01】
一.网站 Code4App 开发者常用库分享网站 GitHub git是一个优秀的分布式版本控制系统 stackoverflow 技术在线问答网站 CocoaChi ...
- In close() at SocketHttpClientConnection in Android
In close() at SocketHttpClientConnection Error In Android. when i tried to acess network data on Mai ...
- windowsAzure模拟器错误
Failed to initialize Microsoft Azure storage emulator. Unable to open wait handle 无法初始化微软Azure存储模拟器. ...
- WCF开发指南之构建服务
一. 引言 Windows通讯基础(简称为WCF)是一种SDK,用于让你使用典型的CLR编程结构(例如用于发布和消费服务的类和接口等)来构建Windows面向服务的应用程序.WCF的编程模型是声明性的 ...
- uoot启动过程
1.从我们的start_armboot开始讲起 u-boot整体由汇编段和C语言段外加连接脚本组成.关于汇编段请看我之前的博客<u-boot源码汇编段简要分析>,好,让我们进入start_ ...
- Java基础小总结
1,Java事件处理机制 (1)三部分:事件源.事件(处理)对象.实现事件监听器: (2)事件处理程序:可以通过ActionEvent e,e.getSource确定是哪个事件触发了,然后通过类似JB ...