zoukankan      html  css  js  c++  java
  • 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,返回给客户端。

  • 相关阅读:
    HBase with MapReduce (MultiTable Read)
    HBase with MapReduce (SummaryToFile)
    HBase with MapReduce (Summary)
    HBase with MapReduce (Read and Write)
    HBase with MapReduce (Only Read)
    Hbase中的BloomFilter(布隆过滤器)
    HBase的快照技术
    How To Use Hbase Bulk Loading
    Cloudera-Manager修改集群的IP
    Java中的HashSet和TreeSet
  • 原文地址:https://www.cnblogs.com/wfy680/p/12213654.html
Copyright © 2011-2022 走看看