ASP.NET的 Razor引擎和JavaScript是一种什么关系
Razor能做的JS大部分能做,不是全部。比如说,如果你用了Entity Frame一类的ORM的时候,Razor可以直接绑定数据库数据,但JS就不可能直接访问数据库——必须通过其他web service去开一个另外的连接来取数据。不过总而言之,Razor和JS的主要区别是服务器端渲染和客户端渲染的区别
我们先从浏览器发展的历史说起(现在开始吹牛逼)刚开始的时候浏览器只认识html和css,只会呆萌的将它们渲染成我们看到的图像和文字(其实最开始连css都不认识,但是与本文无关),通信过程也简单,浏览器请求服务器已写好的html和css,服务器发给它,然后浏览器渲染呈现,一切都是那么和谐。 后来人们觉得网页太安静了,就想不如加点动画吧,这就有了javascript江湖人称js,它能在浏览器运行并动态的去修改html,当然仅限于你自己的浏览器内的数据,这个过程和服务器无关。现在的通信过程也无非是服务器除了html css 再多发送一份js罢了,于是此时我们能看到了跑马灯,看到了晃来晃去的小广告。 后来一个可怕的需求来了,用户需要登录…更可怕的是登录之后显示的内容都是不同的,比如邮箱…这个时候服务器就需要针对每个用户去生成专有的html,一大批解决方案也应运而生,早期的asp,php,java也有相应的解决方案,c#作为世界上最牛逼的语言(有人不服请另外开贴来辩)当然也得有最牛逼的方案,介就是razor…现在我们的通信过程就是 浏览器请求并告诉服务器我是谁,服务器去查询数据库得到属于你的数据,razor去根据数据生成只属于你的html,然后再发送给你,浏览器职责不变还是根据收到的html css js 去渲染页面。 但上述过程存在问题,服务器处理这么多请求,生成这么多专属页面好累的有木有?既然js可以去动态生成html那干脆将数据发送给js让它去浏览器上自行去生成html不就得了?而且js去修改html还能做到平滑过渡局部刷新,不存在整个网页闪来闪去了,提高了用户的体验有木有…所以自从谷歌地图这么搞之后,几乎所有网站都开始了这个过程…但是别忘了js是干小广告起家的,业务一复杂有点hold不住啊,所以人们开始推出js的框架 前期的jquery 现在的angular, react,vue,都是试图去规范化js的用法以满足大型项目复杂逻辑的需求,不至于写跑偏了…
最大区别就是Razor是http://ASP.Net的框架引擎,用户在后台生成html然后返回给客户端,Javascript是直接在客户端处理的一种语言。Razor中可以使用javascript, 而Javascript无法使用Razor.Javascript本质上是一种操作Html的语言,对于后台逻辑和数据库的访问,要通过call restful api来做。Razor本质上是一个框架引擎,让你更方便的使用ASP.Net, 而http://ASP.Net作为一种后台web语言,它处理你的请求,访问数据库,然后把结果生成一个html,返回给客户端。
ASP.NET的 Razor引擎和JavaScript是一种什么关系的更多相关文章
- ASP.NET,C#后台调用前台javascript的五种方法
C#后台调用前台javascript的五种方法 由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件.在网上 ...
- [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成Html代码
在web开发中经常会遇到在内部代码中获取Html,这些Html是需要和数据进行一起渲染.并不是直接把Html代码返回给客户端.这样的做法有很多应用场景,例如分页.Ajax一次性获取几段Html片段.生 ...
- MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式
MVC的验证(模型注解和非侵入式脚本的结合使用) @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...
- 独立使用Asp.net Core 的razor模板 (一):Razor引擎的一些细节
由于最近需要写一些界面稍微好看点的Winform程序,如果用原生控件,,想要达到好看的程度,需要花费比较大的功夫,因为之前使用过CefSharp,因此发觉如果是使用CEF+Html的方式,界面可以相对 ...
- (转)Asp.Net Mvc视图引擎Razor介绍
Asp.Net Mvc视图引擎Razor介绍 1.Razor介绍 程序园原创,转载请注明:http://www.kwstu.com/ArticleView/dabaomvc_2014082408205 ...
- Asp.net MVC 视图引擎
Asp.net MVC视图引擎有两种: 1.ASPX View Engine 这个做过WebForm的人都清楚 设计目标:一个用于呈现Web Form页面的输出的视图引擎. 2.Razor View ...
- 实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用
前言 对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具.这之前,我也了解到很多Javascript 端的模板工 ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到 ...
- 学习ASP.NET Core Razor 编程系列十二——在页面中增加校验
学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体 学习ASP.NET ...
随机推荐
- ssh配置跳板机-带密钥
ssh配置跳板机堡垒机带密钥 ~/.ssh/config 添加以下配置: # 跳板机地址 Host jumper HostName jumper.com User jumper port 23333 ...
- MySql快速入门(四)
在之前我们对MySql已经有了基本的了解,接下来我们就来接触MySql的分库分表,请往下阅读: 分库分表之MyCat实现 分库分表介绍: 随着微服务这种架构的兴起,我们应用从一个完整的大的应用,切分为 ...
- 图灵,咕泡,鲁班学院--Java高级架构师-互联网企业级实战VIP课程(价值6380)
课程介绍: 讲课内容涉及Java互联网技术工程框架.应用框架. 性能调优 (Tomcat Nginx JVM) 分布式框架(并发编程 Zookeeper N ...
- AcWing 1049. 大盗阿福
//f[i,j]表示所有走了i步,且当前位于状态j的所有走法 j=1表示选第i个 j=0表示不选 //如果j=0 那么表示不选第i个 那么就可以从f[i-1,0]和f[i-1,1]转移过来 //如果j ...
- 使用VSCode创建简单的Razor Webapp--2.添加模型
1.新建Models文件夹,并新建Movie.cs文件 using System; using System.ComponentModel.DataAnnotations; namespace Raz ...
- Ubutu安装oracle jdk1.8
环境: Ubuntu 18.04 LTS x64位 系统用户 hou 工具: jdk-8u171-linux-x64.tar.gz 实验的心 步骤: 第一步: 查看有没有装jdk,按住 ctr+a ...
- mac 命令行下 vim 的使用
vi/vim 使用实例 使用 vi 来建立名为 test.txt 的文件 vi test.txt1按下 ESC 按钮回到一般模式 在一般模式中按下 :wq 储存后离开 vi 基本上 vi/vim 共分 ...
- spring boot no identifier specified for entity
定义Id 时,引用的是 import org.springframework.data.annotation.Id; 实际应该引入: import javax.persistence.Id;
- centos开发环境搭建
1.检查是否安装php php -v yum install php 2.安装composer curl -sS https://getcomposer.org/installer |php //下载 ...
- nginx禁止限制某个IP地址或网段访问服务器
nginx配置访问ip需要修改nginx.conf文件,只需要在server中添加allow跟deny的ip即可,如下: upstream novel { server ; } server { li ...