整理自: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的数据包一到,浏览器就肯定刷新页面?的更多相关文章

  1. 遇到问题之“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 ...

  2. {"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 ...

  3. sessionStorage记录返回前端的数据,用于解决登录拦截器刷新页面的问题

    1.问题出现的场景与解决 实现一个登录拦截器,重写doFilter方法,判断用户的登录状态,在用户长时间未操作或者异地登录时前端进行提示,完整代码如下 public class LoginValida ...

  4. AFNetworking request failed unacceptable content type text/html

    今天体验AFNetwork 3.1.0 进行数据解析,但是解析数据控制台一直都输出这样的 error 结果: 于是,照着以前AFN2.+版本的进行设置: 结果发现在新版本的 AFN 上不能设置了.既然 ...

  5. LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)

    form.on('submit(mySearch)', function(data){ table.reload('userTable', {//就会读取后台数据,重新加载: page: { curr ...

  6. No handler for type [text] declared on field [content]

    Install 1.compile checkout ik version respective to your elasticsearch version git checkout tags/{ve ...

  7. 多CPU下基于e1000e驱动的数据包以及网卡中断流程分析.doc

    http://wenku.baidu.com/link?url=mMKDH_fKmUXN7L6rANIFHjoHdKCYBLlDrqoYB1daDTEkNFk9Bt9xlJtS_4BKBj6w22WD ...

  8. 可否控制<link type=text/css rel=stylesheet href=style.css>

    本篇文章主要介绍了"可否控制<link type=text/css rel=stylesheet href=style.css> ", 主要涉及到可否控制<lin ...

  9. input type =text,按回车键自动提交

    1.当form表单中只有一个<input type="text" name='name' />时按回车键将会自动将表单提交 <form id='form1' ac ...

随机推荐

  1. spark1.5 scala.collection.mutable.WrappedArray$ofRef cannot be cast to ...解决办法

    下面是我在spark user list的求助贴,很快就得到了正确回答,有遇到问题的同学解决不了也可以去上面提问. I can use it under spark1.4.1,but error on ...

  2. js实现input输入框只能输入数字的功能(完美测试通过)

    <input type="text" style="ime-mode:disabled;" onpaste="return false;&quo ...

  3. C# 字符串转义和反转义

    System.Text.RegularExpressions.Regex.Unescape(s) System.Text.RegularExpressions.Regex.Escape(s)

  4. Windows Store App 旋转中心

    旋转中心的位置可以通过设置CenterOfRotationX.CenterOfRotationY和CenterOfRotationZ属性来指定.CenterOfRotationX和CenterOfRo ...

  5. DataTable 导到Excel

    /// <summary> /// 将DataTalbe导出到Excel中 /// </summary> /// <param name="dt"&g ...

  6. git add 命令添加所有改动内容

    git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件. 注意 -A 选项后面还有一个句点. git add -A表示添加所有内容 ...

  7. 生成XML文件

    import java.io.FileOutputStream;import java.io.IOException; import org.jdom.Document;import org.jdom ...

  8. Liquid基础语法

    Output输出 简单输出示例: Hello {{name}} Hello {{user.name}} Hello {{ 'tobi' }} Advanced output: Filters 高级输出 ...

  9. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  10. 设计模式六大原则(5)—迪米特法则

    定义: 一个对象应该对其它的对象保持最少的了解.迪米特法则又称为最少知识法则,英文全称为Least Knowledge Principle ,简称为LKP. 个人理解: 迪米特法则主要目的是类间解耦, ...