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 ...
随机推荐
- python3.6安装lxml库
好像是在python3.5之后,安装了lxml也无法使用etree 为了就解决这个问题使用如下方法: 1.下载lxml的wheel文件,下载地址:https://www.lfd.uci.edu/~go ...
- 在linux系统中配置NVMe over FC
在linux系统中配置NVMe over FC与配置NVMe over TCP类似,前5步操作请参考<在linux系统中配置NVMe over TCP>,网页连接如下: https://w ...
- 前端 form select js处理
1.代码如下 function initializeSelect(data) { var area = $("#ServiceName"); area.find("opt ...
- vue formatter element表格处理数据
formatter 指定一个vue methods 方法 作用:对从数据库中取出的数据进行处理后展示. <el-table-column prop="partner1" // ...
- Java面向对象--类和对象
面向对象是相对于面向过程而言的,是软件开发方法.面向对象把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统设计,更贴近事物的自然运行模式.本篇博客介绍Java面向对象的类和对象 目录: 面 ...
- 2级迁移类Q201-Oracle RAC 到单机RMAN迁移(同字节序)非公
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- Mac下Charles的安装和配置
一.安装与破解 官网下载,破解方法参考其他,此处略 二.配置 1.电脑端安装 Charles 的根证书 注意:此时钥匙串默认为不信任,需设置为始终信任 2.配置代理:勾选enable transpre ...
- 10个Python 初学者必知编码小技巧
技巧 #1 字符串翻转 >>> a = "codementor" >>> print "Reverse is" ...
- Manacher算法求最长回文串模板
#include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...
- 【PAT甲级】1117 Eddington Number (25分)
题意: 输入一个正整数N(<=100000),接着输入N个非负整数.输出最大的整数E使得有至少E个整数大于E. AAAAAccepted code: #define HAVE_STRUCT_TI ...