为您找到搜索结果:6777个
一个页面从输入url到页面加载显示完成,中间都经历了什么
第一种解释:一般会经历以下几个过程:1、首先,在浏览器地址栏中输入url2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。3、在发送http请求前,需要域名解析(DNS解析)(DNS(域名系统,DomainNameSystem)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住IP地址。),解析获取相应的IP地址。dns也是可以进行优化加载速度的 4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。(TCP即传输控制协议。TCP连接是互联网连接协议集的一种。)5、握手成功后,浏览器向服务器发送http请求,请求数据包。6、服务器处理收到的请求,将数据返回至浏览器7、浏览器收到HTTP响应8、读取页面内容,浏览器渲染,解析html源码9、生成Dom树、解析css样式、js交互10、客户端和服务器交互11、ajax查询其中,步骤2的具体过程是:浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS...
javascript常见面试题
1、let和var(a):let声明的变量只在let命令所在的代码块内有效(b):let是在代码块内有效,var是在全局范围内有效:(c):let不存在变量提升,var会变量提升:for(vari=0;i<10;i++){setTimeout(function(){console.log(i);})}//输出十个10for(letj=0;j<10;j++){setTimeout(function(){console.log(j);})}//输出0123456789解析:变量i是用var声明的,在全局范围内有效,所以全局中只有一个变量i,每次循环时,setTimeout定时器里面的i指的是全局变量i,而循环里的十个setTimeout是在循环结束后才执行,所以此时的i都是10。变量j是用let声明的,当前的j只在本轮循环中有效,每次循环的j其实都是一个新的变量,所以setTimeout定时器里面的j其实是不同的变量,即最后输出12345。(若每次循环的变量j都是重新声明的,如何知道前一个循环的值?这是因为JavaScript引擎内部会记住前一个循环的值)。...
TypeScript library starter 创建一个TS项目
TypeScriptlibrarystarter它是一个开源的TypeScript开发基础库的脚手架工具可以帮助我们快速初始化一个TypeScript项目我们可以去它的官网地址学习和使用它https://github.com/alexjoverm/typescript-library-starter使用方式gitclonehttps://github.com/alexjoverm/typescript-library-starter.gitYOURFOLDERNAMEcdYOURFOLDERNAME#Runnpminstallandwriteyourlibrarynamewhenasked.That'sall!npminstall ...
eclipse 新建 maven 项目 + 消除错误
安装eclips以及maven自行去了解,这里不讲解一、新建一个maven项目。二、下一步选择项目架构三、填写相关信息groupid:一般都是com点项目名aftriact.id工程的名称然后点击结束第一个maven项目创建成功之后,是会提示警告或者错误,这时我们需要作以下的配置。 第一步:添加tomcat的库。eclips=>preferences 然后选择自己的tomcat的安装目录,然后选择相应的tomact的版本,结束并应用第二部、项目添加tomcat项目右击然后再接着 修改pom.xml文件,让项目在我们电脑上的jdk下运行。如下图,把对应的代码复制进去,保存。<plugins><plugin><!--https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin--><groupId>org.apache.maven.plugins</groupId><artifactId&...
Swiper 3D flow轮播使用方法
swiper的3d轮播效果,移动端适用(1).如需使用Swiper的3d切换首先加载3Dflow插件(js和css)。<head><linkrel="stylesheet"href="css/idangerous.swiper.css"><linkrel="stylesheet"href="css/idangerous.swiper.3dflow.css"><scriptsrc="js/idangerous.swiper-2.x.min.js"></script><scriptsrc="js/idangerous.swiper.3dflow-2.x.js"></script></head>(2).插入相应代码varmySwiper=newSwiper('.swiper-container',{//其他设置tdFlow:{rotate:50,stretch:0,depth:100,modifier:1,shadows:true}});(3).参数分析rotate:number,//侧转角度(正...
Vue如何使用vue-area-linkage实现地址三级联动效果
很多时候我们需要使用地址三级联动,即省市区三级联动。网上有很多插件,在此介绍Vue的一款地区联动插件:vue-area-linkage,下面介绍如何使用这个插件实现地址联动效果:一、安装//v5之前的版本npmi--savevue-area-linkage//v5及之后的版本npmi--savevue-area-linkagearea-dataoryarn//v5之前的版本yarnaddvue-area-linkage//v5及之后的版本yarnaddvue-area-linkagearea-data 二、在main.js上进行依赖注入importVuefrom'vue';import{pca,pcaa}from'area-data';//v5orhigherimport'vue-area-linkage/dist/index.css';//v2orhigherimportVueAreaLinkagefrom'vue-area-linkage';Vue.use(VueAreaLinkage)三、组件中使用//v5之前的版本<area-selectv-mode...
vue-awesome-swiper组件的使用
一、轮播图组件是这样安装的npmi--save-devvue-awesome-swipermain.js里面import'swiper/dist/css/swiper.css'importVueAwesomeSwiperfrom'vue-awesome-swiper'Vue.use(VueAwesomeSwiper)banner.vue.切记要在需要引入的页面中import{swiper,swiperSlide}from'vue-awesome-swiper'<template><divclass="swiper-container"><divclass="swiper-wrapper"><swiper:options="swiperOption"ref="mySwiper"><!--幻灯内容--><swiper-slide:key="i"v-for="(str,i)inbannerList"><img:src="str.picUrl"color:#800000;">"height:100%"/><...
微信小程序中的iPhone X适配问题
小程序中下方的导航会被iPhoneX下面的那条黑线盖住【微笑脸】,所以要专门为了iPhoneX做样式上的适配【微笑脸】wx.getSystemInfo({success:function(res){//console.log(res.model)//console.log(res.language)//zh_CN(en)//console.log(res.model=="iPhoneX")if(res.model=="iPhoneX"){that.globalData.isIPX=1;}}})好在官方文档里有给出API可以获取到设备的信息,判断之后去给class添加样式就可以啦.isIPX{bottom:68rpx!important; ...
linux安装pip
1、先说一下什么是pippip是“AtoolforinstallingandmanagingPythonpackages.”,也就是说pip是python的软件安装工具2、下面介绍怎么在linux下安装pip下载pip到/usr/local/src#cd/usr/local/src#wget"https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb"--no-check-certificate如果提示:-bash:wget:commandnotfound那么安装wget,执行如下:#yum-yinstallwget解夺安装pip#tar-xzvfpip-1.5.4.tar.gz#cdpip-1.5.4#pythonsetup.pyinstall如果安装报下面的错:Traceback(mostrecentcalllast):File"setup.py",line6,in<module>fromsetuptools...
获得用户的真实IP地址
/***获得用户的真实IP地址**@accesspublic*@returnstring*/if(!function_exists('get_real_ip')){functionget_real_ip(){static$realip=NULL;if($realip!==NULL){return$realip;}if(isset($_SERVER)){if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){$arr=explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);/*取X-Forwarded-For中第一个非unknown的有效IP字符串*/foreach($arrAS$ip){$ip=trim($ip);if($ip!='unknown'){$realip=$ip;break;}}}elseif(isset($_SERVER['HTTP_CLIENT_IP'])){$realip=$_SERVER['HTTP_CLIENT_IP'];}else{if(isset($_SERVER['REMOTE_ADDR']...
TCP/IP之蓟辽督师 转
原创: 刘欣 码农翻身 2016-11-07本文续《TCP/IP之大明内阁》,不了解背景的同学可以先看看上一篇文章,当然这篇也是《TCP/IP之大明邮差》的前传,主要讲一讲可靠性传输的原理。袁崇焕奉圣旨进京,也被迫带来了他的心肝宝贝幻月宝镜。他一进京,顾上休息,立刻就先去拜见曾经举荐提报自己的恩师孙承宗,看到自己的爱将风尘仆仆的赶来,虽然心疼,稍事寒暄过后,还是立刻问起了怎么用幻月宝镜实现可靠传输的问题。袁崇焕道:“老师有所不知,这幻月宝镜虽好,但是如果没有失败重传的方法,一切都是白搭。关外的环境比关内更加恶劣,除了强盗野兽,还有飘忽不定的清军骑兵,随时打劫你。”“确实是实情,老夫当年巡视辽东的时候也看到了,那你发出去物资以后,是不是要等待对方的回复确认啊?”“老师说的对,这也是我们刚开始的设想,请看这张状态图:” “状态图是什么东西?你自己弄的?”“不,这是荷兰红毛送红衣大炮的时候教我画的,他们那边的人很擅长搞这种玩意,说是&...
TCP/IP之大明内阁 转
原创: 刘欣 码农翻身 2016-11-02本文是《TCP/IP之大明王朝邮差》的前传, 讲一讲大明内阁的各位大人是怎么设计TCP/IP网络的。大明天启年间, 明熹宗朱由校醉心于木工,重用宦官魏忠贤,不上朝已经很久了。内阁内阁首辅叶大人忧心忡忡,大明各地民不聊生,大片田地荒芜,强盗,野兽横行,之前修建的官道也基本废弃了,不但收不到各地送来的奏报, 自己昨天好不容易摆脱魏忠贤,面见了一次皇上,但是请求颁发的一道圣旨竟然无法送到各个府县,送信的邮差都被半路抢劫了,或者失踪了!叶首辅决定召开一次内阁会议,研究下怎么建立一个可靠的,稳定的、通畅的上情下达机制。虚电路前来开会的大人们听了叶首辅说的情况,立刻都是愁眉苦脸的,面对这么一个艰巨的挑战,没人愿意开口,都是在不住的叹气摇头。过了一炷香功夫,韩大人看到首辅不断的给自己使眼色,只好开口了:“各位大人,我有个不成熟的想法,说出来大家评判一下。现在主要的问题是强盗横行、野兽出没,我想我们可以派出我们的大军,沿路站岗,五步一岗,三部一哨,给官道建立一个可靠的保障。”...
TCP/IP 之 大明王朝邮差 (转)
原创: 刘欣 码农翻身 2016-05-12 前言:本文主要想说一下TCP的知识,比喻有不恰当之处,敬请包涵。大明王朝天启四年,清晨。 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物的地方, 一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲,手持长枪,虎视眈眈的注视这下面的动静。 城门口的大棚里乱哄哄的,是一群人围在一起赌钱,这些家伙都穿着同样的衣服,前胸和后背写着三个大字 “TCP邮差”我知道这就是我要找的人,他们会帮我把货物发出去。 我下了车,在大棚里四处查看,找到一个无聊的坐着独自喝闷酒的小伙子。 "邮差小哥,帮我把这车货发了呗" 小伙子懒洋洋的站起来说:“你从哪儿来,要到哪儿而去啊?” 我赶紧拿出写好的地址说:”我住在咱们城里北拐街224号,要发一车货物到内乡县衙““内乡县衙有很多门,你的货进那个门啊?&rdquo...
什么是时间复杂度
什么是时间复杂度作为一个处在学习之路的渣渣,被一个时间复杂度的题给难倒了,然后我就思考了一下什么是时间复杂度。虽然在学校学习了了算法的课程,但是仔细一想,对于时间复杂度还真是不怎么懂。于是重新学习,记下自己的一些理解。 1.时间复杂度提到时间复杂度,第一时间想到的是算法,简单说,算法就是你解决问题的方法,而你用这个方法解决这个问题所执行的语句次数,称为语句频度或者时间频度,记为T(n)。 那么问题来了,我们为什么要引入这些个概念呢。因为我们想要的是执行一个算法耗费的时间,这个时间理论上可以得到,但是,要得到这个时间就必须要上机测试,但是有这个必要吗?我们需要知道的是哪一个算法需要的时间多,哪一个算法需要的时间少,这样就可以了。而且,算法的耗时和语句的执行次数是成正比的,即语句执行越多,耗时越多。这也就是我们引入概念的原因。 在上面提到的时间频度T(n)中,n是指算法的规模,n不断的变化,T(n)就会不断的变化,而这些变化的规律是怎样的呢?于是我们引入了时间复杂度的概念。 什么是时间复杂度,算法中某个函数有n次基本操作重复执行,用T(n)表示,现在...
python爬虫之scrapy的pipeline的使用
scrapy的pipeline是一个非常重要的模块,主要作用是将return的items写入到数据库、文件等持久化模块,下面我们就简单的了解一下pipelines的用法。案例一: items池classZhihuuserItem(scrapy.Item):#definethefieldsforyouritemherelike:#name=scrapy.Field()id=scrapy.Field()name=scrapy.Field()avatar_url=scrapy.Field()headline=scrapy.Field()description=scrapy.Field()url=scrapy.Field()url_token=scrapy.Field()gender=scrapy.Field()cover_url=scrapy.Field()type=scrapy.Field()badge=scrapy.Field()answer_count=scrapy.Field()articles_count=scrapy.Field()commercial_question=scr...