settimeout

python15-前端之BOM和DOM

删除回忆录丶 提交于 2020-03-06 14:47:47
前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 window对象 所有浏览器都支持 window 对象。它表示浏览器窗口。 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。全局函数是 window 对象的方法。 接下来要讲的HTML DOM 的 document 也是 window 对象的属性之一。 一些常用的Window方法: window.innerHeight

setTimeout 与 setInterval

╄→гoц情女王★ 提交于 2020-03-05 08:49:22
  最新写代码中时,看到项目中有人用到了 setTimeout(fun,0),于是想总结一下。个人理解,如果有错误的地方还请指出。THX   要想理解JavaScript的定时器是如何工作的,先要明白 JavaScript 引擎是单线程的。这个可以理解为 javascript 引擎是一个服务员,它有一个服务的队列,所有的界面元素事件,定时触发器回调,异步请求回调都要在这个任务队列里排队,等待处理。所有任务都是一个最小单位,不会中断处理。这样就可以理解 setTimeout(fun,0) 了,它并不是代表立即执行该代码,除非任务队列为空(事实上,各个浏览器在实际执行这个的时候也是有差异了,比较新的浏览器实际可能是在4ms;老版本的可能更长一点,16ms也是可能的)。而 setTimeout(fun,time) 的意思就是多少时间后将 fun 回调加到这个任务队列中,也就是至少需要time时间才会执行fun。   举个例子: setTimeout(function () { console.log(1); }, 0); var tem = 0; for (var i = 1; i < 1000000; i++) { tem += i; }; console.log(2); 显示结果为 2 1   就是说,在执行 setTimeout 时,将 function 回调加入了任务队列

Typescript - setTimeout custom time from variable that is dynamic in for loop

荒凉一梦 提交于 2020-03-04 18:18:42
问题 So I have this function that has a timeout that changes every 3s: setActiveImage(promotions) { for (let i = 0; i <= promotions.length - 1; i++) { setTimeout(()=> { this.activeImage = 'http://myrul/public/Commercials/' + promotions[i].commercial_file[0].file; }, 3000*(i)); //CHANGE PICTURE EVERY 3s } } Now I want change the time (3000) to a custom variable that I get from promotions . This is promotions: So every picture, or instance of i, has it's own time. Here is what I did: for (let i = 0;

this关键字

时光总嘲笑我的痴心妄想 提交于 2020-03-04 17:14:24
本文主要解释在JS里面this关键字的指向问题(在浏览器环境下)。 阅读此文章,还需要心平气和的阅读完,相信一定会有所收获。 首先,必须搞清楚在JS里面,函数的几种调用方式: 普通函数调用 作为方法来调用 作为构造函数来调用 使用apply/call方法来调用 Function.prototype.bind方法 es6箭头函数 但是不管函数是按哪种方法来调用的,请记住一点: 谁调用这个函数或方法,this关键字就指向谁。 接下来就分情况来讨论下这些不同的情况: 1、普通函数调用 1 function person(){ 2 this.name="xl"; 3 console.log(this); 4 console.log(this.name); 5 } 6 7 person(); //输出 window xl 8 在这段代码中 person 函数作为普通函数调用,实际上 person 是作为全局对象 window 的一个方法来进行调用的,即 window.person() ; 所以这个地方是 window 对象调用了 person 方法,那么 person 函数当中的 this 即指 window, 同时 window 还拥有了另外一个属性 name ,值为 xl . 1 var name="xl"; 2 function person(){ 3 console.log(this

vue项目使用定时器每隔几秒请求一次接口

给你一囗甜甜゛ 提交于 2020-03-03 21:21:22
vue.js项目,每隔5秒请求一次接口,接口有返回则停止请求,没有返回继续请求。 先看两种定时器 // 每隔设定时间调用一次函数 setInterval ( function ( ) { } , milliseconds ) //设定时间后只执行函数一次 setTimeout ( function ( ) { } , milliseconds ) 注意:单纯的使用setInterval会导致页面卡死! 由于setInterval不会清除定时器队列,每重复执行1次都会导致定时器叠加,最终卡死网页。 但是setTimeout是自带清除定时器的,因此正确解决方法如下: window . setInterval ( ( ) => { setTimeout ( fun , 0 ) } , 30000 ) setInterval必须放在外层,内层配合setTimeout,便可以无限次调用接口 回到要解决的问题,如何在得到数据后停止定时器? // 如methods里定义的点击方法 methods : { click ( ) { let timer = setInterval ( ( ) => { this . fun ( timer ) } , 5000 ) } , fun ( timer ) { setTimeout ( ( ) => { // 这里ajax 请求的代码片段和判断是否停止定时器

前端基础之BOM和DOM

我只是一个虾纸丫 提交于 2020-03-03 15:13:15
前戏 JavaScript分为 ECMAScript,DOM,BOM。   BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。   DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。   Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 BOM window对象 看上面的例子你会发现,name直接封装到了window对象上,了解一下就可以了。   所有浏览器都支持 window 对象。它表示浏览器窗口。   *如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象(了解)。   *没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象(了解)。   所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。   全局变量是 window 对象的属性。全局函数是 window

前端基础之BOM和DOM

守給你的承諾、 提交于 2020-03-03 14:55:43
前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法。但是这些简单的语法,并没有和浏览器有任何交互。 也就是我们还不能制作一些我们经常看到的网页的一些交互,我们需要继续学习BOM和DOM相关知识。 JavaScript分为 ECMAScript,DOM,BOM。 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。 DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 Window对象是客户端JavaScript最高层对象之一,由于window对象是其它大部分对象的共同祖先,在调用window对象的方法和属性时,可以省略window对象的引用。例如:window.document.write()可以简写成:document.write()。 window对象 所有浏览器都支持 window 对象。它表示浏览器窗口。 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。全局函数是 window 对象的方法。 接下来要讲的HTML DOM 的 document 也是 window 对象的属性之一。 一些常用的Window方法: window.innerHeight

异步专题

时间秒杀一切 提交于 2020-03-03 07:58:15
同步与异步 /* 同步异步是什么: 同步和异步是一种消息通知机制 同步阻塞: A调用B,B处理获得结果,才返回A A在这个过程中,一直等待B结果,没有拿到结果之前,需要A(调用者)一直等待和确认调用结果是否返回,拿到结果,然后继续再执行下去. 做一件事,没有拿到结果之前,就一直等待,一直等到有结果了,再去做下面的事. 异步非阻塞: A调用B,无需等待B结果,B通过状态,通知A或回调函数来处理. 做一件事,不用等待事情的结果,然后就去忙别的了,有了结果,再通过状态来告诉B,或者通过回调函数来处理. 生活例子 小明去图书馆借书,和管理员说找那本书,管理员就去一本本查,查完之后才告诉小明,有没有这个书; 小明A 图书馆管理员B 查的这个过程需要时间,所以 同步 -> 在管理员找到或者找不到的过程中,不回去通知小明,需要小明'一直'去问他结果 异步 -> 在管理员找到之后,就会'通知方式'去告诉小明,所以小明可以继续干别的事,等待通知管理员通知就行; */ { // 同步:阻塞 function test(){ console.log("test..."); } test(); console.log("end..."); // 代码执行过程: test... -> end... 因为他们是一步一步向下执行的; } { // 异步:非阻塞 // 在JS中非常典型的 异步函数 :定时器

发送验证码倒计时

你说的曾经没有我的故事 提交于 2020-03-02 13:58:55
var code = $('.j-send-verifycode'); //点击发送验证码按键 code.attr("disabled","disabled"); setTimeout(function(){ code.css({"opacity":"0.8","width":"107px","left":'340px'}); //根据需求设置样式 },200); var time = 120; var set=setInterval(function(){ code.val("("+--time+")秒后重新获取"); }, 1000); setTimeout(function(){ code.attr("disabled",false).val("重新获取"); clearInterval(set); }, 120000); 来源: https://www.cnblogs.com/qiuqiunile/p/11341857.html

30s源码刨析系列之函数篇

别来无恙 提交于 2020-03-01 21:42:10
前言 由浅入深、逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美。 本系列是对名库 30SecondsOfCode 的深入刨析。 本篇是其中的函数篇,可以在极短的时间内培养你的函数式思维。 内容根据源码的难易等级进行排版,目录如下: 新手级 普通级 专家级 正文 新手级 checkProp const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]); const lengthIs4 = checkProp(l => l === 4, 'length'); lengthIs4([]); // false lengthIs4([1, 2, 3, 4]); // true lengthIs4(new Set([1, 2, 3, 4])); // false (Set uses Size, not length) const session = { user: {} }; const validUserSession = checkProp(u => u.active && !u.disabled, 'user'); validUserSession(session); // false session.user.active = true; validUserSession