TypechoJoeTheme

Tree house

标签搜索

最新文章

2021-10-25

class_base vs prototype_base

class_base vs prototype_base
前言之前写了一个箭头函数的bug,引起了我对于this在JavaScript中的思考查阅资料,看到了许多人拿别的OOP语言与JavaScript的OOP实现进行对比然后就引起了我对于class_base与prototype_base两者异同的思考引子这里拿python和JavaScript进行对比(其实java与JavaScript对比感觉更直观,但奈何笔者不会java菜哭)两者都可以说是面向对象编程语言,但需要指出的是:python设计之初就有class关键字,但是JavaScript是没有的(ES6引入的class关键字其实是一个语法糖而已)(后面会介绍)两者对于面向对象编程的实现是不同的,一个通过class,一个通过prototypeJavaScript代码: ES6代码: class father{ constructor(name){ this.name =name } } ES5代码: function father(name){ this.name =name } //实例化 father01 =new father('x...
2021年10月25日
4 阅读
0 评论
2021-10-23

Dijkstra算法--python实现

Dijkstra算法--python实现
前言写这个是起因于老师带我们做一个简单的交通规划软件路网下很自然的要涉及到最短路径问题,于是就简单讲述了该算法的思想感觉老师讲的很清楚明了,私下再查阅相关资料,用python实现了该算法下面就说一说对于该算法的理解(至于为什么用python,emmm.....可能是人生苦短吧)最短路径问题给定一个带权有向图G和源点V,求出V到G中其他点的最短距离及路径(该图的任意一条边上的权重都要求大于0)算法思想:首先寻找源点V0相邻的点,并从中选出一条最短路径,假定为(v0,vi)那么v0到vi的最短路径就是(v0,vi)为了更好的阐释,我们引入边界和已知点的概念,v0为最初的已知点,v0的边界指直接于V0相连的点。 下面使用反证法证明: 如果v0到vi不是最短,就需要通过边界上的其他(假定为vj)最终到vi 而(v0,vj)>(v0,vi),到vi的话还需要加上其他边的权重 所以证明(v0,vi)最短,同时也说明了为什么Dijkstra算法要求G的权重大于0(如果有边的权重为负数,那么上面这个证明显然就不成立了) 之后我们就需要更新已知点和边界已知点变为[v0,vi],然后再...
yzh2002
2021-10-23

python,transport

2021年10月23日
11 阅读
0 评论
2021-10-21

浏览器如何渲染页面?

浏览器如何渲染页面?
前言上篇文章说了当我们在本地主机敲下www.bilibili.com时,本地主机如何将请求发送到B站服务器,并成功获取页面的,下面说一下浏览器拿到页面之后如何将页面渲染成我们所见到的页面浏览器结构用户界面即除了浏览器标签栏之外的其他内容浏览器引擎负责在用户界面和渲染引擎之间传递数据渲染引擎解析请求回来的HTML页面网络模块(负责网络请求)js解释器(js引擎)浏览器工作当你在浏览器的地址栏中输入内容时,浏览器的UI线程会捕捉到你输入的内容如果输入的内容是网址,就会交给网络线程进行DNS域名解析进而请求页面如果输入的是关键字,就会交给搜索引擎进行查询我们这里以输入的是网址为例,当服务器返回给浏览器请求的页面后:首先Google的safeBrowsering插件会检测该网站是否是恶意站点,如果是,会阻止你的访问,并弹出恶意警告(当然你还是可以强制访问)如果不是,网络线程就会通知UI线程渲染页面UI线程会创建一个渲染器进程(区分进程和线程?????(基础知识,以后会学))然后浏览器进程会通过IPC管道将数据传递给渲染器进程下面是重头戏,也是浏览器渲染页面的核心流程:渲染器进程的主线程会...
yzh2002
2021-10-21

frontEnd

2021年10月21日
5 阅读
0 评论
2021-10-19

当你输入www.bilibili.com敲下回车后都发生了什么?

当你输入www.bilibili.com敲下回车后都发生了什么?
前言该篇内容是对SDN学习(仅涉及网络通信部分)和前端学习的阶段性总结:总结来看主要涉及两个方面:(1)本地浏览器如何请求到远程服务器的文件信息(2)文件信息(HTML文件及其他)如何被浏览器解析并渲染成我们所见的页面如何获取到B站主页文件DNS解析当我们输入www.bilibili.com时,实际上是请求一个远程IP地址(域名和IP地址的关系不再赘述)为了获取域名对应的IP地址,我们需要请求DNS服务器但是一般流程如下:首先查看浏览器缓存,找不到的话-->调用gethostbyname查看本地文件缓存寻找,找不到的话-->请求DNS服务器进行迭代查询根NDS服务器(返回comDNS服务器的IP地址)-->comDNS服务器(...)-->www.bilibili.com服务器查询(...)本地主机与DNS主机间的通信前面已经解释了DNS查询的大致过程,下面解释一下本地主机如何连接DNS远程服务器首先我们获取到本地缓存文件中的comDNS服务器的IP地址然后就可以进行本地主机与DNS服务器之间的通信首先主机需要判断目标服务器与本地服务器是否在同一网段下(感...
2021年10月19日
10 阅读
0 评论