我的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 搜索

MVC应用程序生命周期

发表于 2020-06-19 |
字数统计: 664 | 阅读时长 ≈ 2

ASP.Net MVC 应用程序的生命周期

一.介绍

定义 ASP.NET 应用程序中的所有应用程序对象共有的方法、属性和事件。此类是用户在 Global.asax 文件中所定义的应用程序的基类。

MVC有两个生命周期,一个为应用生命周期,二为请求生命周期。

二.应用生命周期

应用程序生命周期是指在申请过程实际开始运行IIS,直到它停止的时间。这是通过在应用程序中的启动文件的应用程序开始和结束标记事件。

Image text

三.请求生命周期

发生每一HTTP请求是由我们的应用处理的时间的事件序列。

入口点为每个MVC应用始终由ASP.NET收到请求后,计算出应该如何通过URL路由模块来处理。

  1. Routing 路由
    ASP.NET MVC生命周期中第一个步骤就是路由,路由的过程是根据请求的Url和注册好的路由规则进行匹配,当一旦找到一个与之匹配找路由规则时,ASP.NET MVC路由引擎就把这个请求交给相应的Handler处理。如果没匹配,则返回404错误。
    注册路由,首先从Global.asax上面注册:

  2. Controller 控制器
    Controller是MVC最核心的组件,他是连接View与Model的桥梁,在Controller内部会有相应的Action方法,可以决定请求返回的视图或数据。

  3. Action Excution
    一旦Controller被创建并初始化以后,里面的Action就开始上场了。这里ASP.NET MVC的框架的一个核心组件ActionInvoker就决定了请求到底是哪一个Action的方法。Action方法是真正接收请求的处理方法。
    Action接收用户的输入,进行相应的逻辑处理并把要返回的数据Model准备好了之后传给相应的视图。

  4. View Engine 视图引擎
    Action方法的作用是接受输入,然后进行一定的处理并准备响应数据,最后返回一个View Result类型实例。返回的View Result类型这些类型:ViewResult, RedirectToRouteResult, RedirectResult, ContentResult, JsonResult, FileResult, and EmptyResult等等。
    当我们在Action方法的最后返回一个View Result的时候,ASP.NET MVC框架首先就会选择相应的视图引擎来返回视图。ASP.NET视图引擎都会实现接口IViewEngine。默认ASP.NET MVC框架为我们提供了接口IViewEngine两个实现,视图引擎WebForm和Razor。
    View视图其实就是一个模板的作用,它是把Action传过来的数据绑定到视图文件中并显示到页面中。

MVC和JQGG项目属性对比

发表于 2020-06-19 |
字数统计: 11 | 阅读时长 ≈ 1

MVC项目属性对比

应用程序

Js函数写法

发表于 2020-06-19 |
字数统计: 947 | 阅读时长 ≈ 3

js函数写法

函数声明

1
2
3
4
5
6
fn(111);

funciton fn(param){
alert(param);
}
//js编译器会优先编译声明式函数,然后再逐上而下执行js

函数表达式

1
2
3
4
5
6
fn(111);

var fn = function fun (param){
alert(param);
}
//会报错,因为没有声明fn函数,如果放在下面则可以

匿名函数

1
2
3
4
5
6
7
8
9
function (){
alert(111);
}();
//因为没有把函数赋给变量,所以被编辑器当做声明式表达式,声明式要有方法名

function kk(){
alert(111);
}()
//声明式函数无法直接执行,要加扩号,把他变成对象
阅读全文 »

JS-Foreach

发表于 2020-06-19 |
字数统计: 1.7k | 阅读时长 ≈ 6

JS-Foreach

普通的for循环

1
2
3
4
var arr = [1, 2, 3]
for(var i = 0; i < arr.length; i++) { // 这里的i是代表数组的下标
console.log(i); // 0, 1, 2
};

优化版的for循环

1
2
3
4
var arr = [1, 2, 3]
for(var i = 0, len = arr.length; i < len; i++) { // 这里的i是代表数组的下标

console.log(i); // 0, 1, 2 };

for···of···遍历(支持es6)

1
2
3
4
var arr = [1, 2, 3]
for(var item of arr) { // item代表数组里面的元素
console.log(item); // 1, 2, 3
};
阅读全文 »

http和https

发表于 2020-06-19 |
字数统计: 1.1k | 阅读时长 ≈ 3

http和https的区别

一.http

定义:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务端请求和应答的标准(tcp),用于从www服务器传输超文本到本地浏览器的传输协议。

二.https

定义:在http的基础上,应用了ssl层(Secure Sockets Layer)。用于对http传输的数据进行加密。

三.区别

  1. https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2. http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3. http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4. http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
    阅读全文 »

Hexo

发表于 2020-06-19 |
字数统计: 229 | 阅读时长 ≈ 1

Hexo总结

文件结构

  1. config.yml
    网站的 配置 信息,您可以在此配置大部分的参数。

  2. package.json
    应用程序的信息。EJS, Stylus 和 Markdown renderer 已默认安装,您可以自由移除。

  3. scaffolds
    模版 文件夹。当您新建文章时,Hexo 会根据 scaffold 来建立文件。
    Hexo的模板是指在新建的文章文件中默认填充的内容。例如,如果您修改scaffold/post.md中的Front-matter内容,那么每次新建一篇文章时都会包含这个修改。

  4. source
    资源文件夹是存放用户资源的地方。除
    _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

  5. themes
    主题 文件夹。Hexo 会根据主题来生成静态页面。

Cross-Domain

发表于 2020-06-19 |
字数统计: 2.1k | 阅读时长 ≈ 8

跨域的几种方式

一、什么是跨域

JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。那什么是跨域呢,简单地理解就是因为JavaScript同源策略的限制,a.com域名下的js无法操作b.com或是c.a.com域名下的对象。

有一点必须要注意:跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。之所以会跨域,是因为受到了同源策略的限制,同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。

特别说明两点

  1. 如果是协议和端口造成的跨域问题“前台”是无能为力的。

  2. 在跨域问题上,域仅仅是通过“URL的首部”来识别而不会根据域名对应的IP地址是否相同来判断。“URL的首部”可以理解为“协议, 域名和端口必须匹配”。

阅读全文 »

ASP.NET Core

发表于 2020-06-19 |
字数统计: 282 | 阅读时长 ≈ 1

ASP.NET Core 文档

ASP.NET Core 简介

在ASP.NET 4.x 和ASP.NET Core 之间进行选择

Core

ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。

.Net 4.x

ASP.NET 4.x 是一个成熟的框架,提供在 Windows 上生成基于服务器的企业级 Web 应用所需的服务。

框架选择

ASP.NET Core ASP.NET 4.x
针对 Windows、macOS 或 Linux 进行生成 针对 Windows 进行生成
Razor 页面 是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法。 另请参阅 MVCWeb API 和 SignalR。 使用 Web 窗体、SignalR、MVC、Web API、WebHooks 或网页
每个计算机多个版本 每个计算机一个版本
使用 C# 或 F# 通过 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 进行开发 使用 C#、VB 或 F# 通过 Visual Studio 进行开发
比 ASP.NET 4.x 性能更高 良好的性能
使用 .NET Core 运行时 使用 .NET Framework 运行时

为服务器应用选择 .NET Core 或 .NET Framework

1.微软推荐Core 跨平台面向微服务

$.on用法

发表于 2020-06-19 |
字数统计: 0 | 阅读时长 ≈ 1

随笔

发表于 2020-06-19 |
字数统计: 173 | 阅读时长 ≈ 1

1.0,””,undefined,null,NaN只有这5个转换boolean是false

2.switch 是用全等(===)做判断

3.如果函数return 则后面都不执行
如果不写return 是返回undefined
如果写return 不写值,也是undefined

4.引用类型在栈空间里存的是引用堆空间的地址

5.shadow的参数(从左到右横向坐标,从上到下横向坐标,模糊程度,向外扩展距离,颜色)

阅读全文 »
前一页1234后一页
Meng Yu

Meng Yu

31 日志
GitHub Bilibili
Links
  • 久其格格
© 2020 Meng Yu
本站访问数 人次 本站总访问量 次