js

【JavaScript】使用定时器实现Js的延期执行或重复执行setTimeout,setInterval

北战南征 提交于 2020-02-01 11:49:39
使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval。其中前者可以使一段代码在指定时间后运行;而后者则可以使一段代码每过指定时间就运行一次。它们的原型如下: window.setTimeout(expression,milliseconds); window.setInterval(expression,milliseconds); 其中,expression可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。两个方法的第二个参数是milliseconds,表示延时或者重复执行的毫秒数。下面分别介绍两种方法。 1.window.setTimeout方法 该方法可以延时执行一个函数,例如: <script language="JavaScript" type="text/javascript"> <!-- function hello(){ alert("hello"); } window.setTimeout(hello,5000); //--> </script> 这段代码将使得页面打开5秒钟后显示对话框“hello”

js定时器

久未见 提交于 2020-02-01 11:45:29
定时器分两种分别是setTimeout和setInterval。 两者的用法分别是setTimeout(funhander,time);setInterval(fnhander,time);设置的相应计时器需要用clearTimeout(对象)和clearInterval(对象)清掉。有以下几点需要注意: 第一:setTimeout(funhander,time)的作用是在过time毫秒后,执行 一次 句柄funhander指向的方法。而setInterval(funhander,time)的作用是,每隔time毫秒后,就执行一次句柄funhander指向的方法。一直到我清掉计时器停止。 第二:巨大多数的计时器使用都是为了执行渐变、渐隐渐现、位置渐变等效果,所以funhander指向的方法会被多次执行。因此如果我们使用setTimeout做定时器,一般要把计时器的设置写在funhander指向的方法里,这样就可以循环调用,多次执行funhander,一直到我清掉这个定时器。而在使用setInterval设置定时器的时候,一般要放在funhander指向行数的外面。 第三:funhander指向的方法里处理了渐变中的一步,又会被重复执行,所以在此方法中大多包含有判断语句IF。用来控制渐变到一定程度的时候进行相应处理。比如清掉定时器或者进行循环操作。 第四:funhander为句柄

json和jsonp

假如想象 提交于 2020-02-01 10:04:41
前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。 JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非官方跨域数据交互协议。我们拿最近比较火的谍战片来打个比方,JSON是地下党们用来书写和交换情报的“暗号”,而JSONP则是把用暗号书写的情报传递给自己同志时使用的接头方式。看到没?一个是描述信息的格式,一个是信息传递双方约定的方法。 既然随便聊聊,那我们就不再采用教条的方式来讲述,而是把关注重心放在帮助开发人员理解是否应当选择使用以及如何使用上。 什么是JSON? 前面简单说了一下,JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。 JSON的优点: 1、基于纯文本,跨平台传递极其简单; 2、Javascript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、可读性较强

常见排序算法基于JS的实现

北战南征 提交于 2020-02-01 09:28:06
一:冒泡排序 1. 原理 a. 从头开始比较相邻的两个待排序元素,如果前面元素大于后面元素,就将二个元素位置互换 b. 这样对序列的第0个元素到n-1个元素进行一次遍历后,最大的一个元素就“沉”到序列的最后位置(第n-1个位置,n为待排序元素个数) c.排除此次排序最后面的那个元素(n=n-1),继续对剩余序列重复前面两步 d. 当(n= n-1)=0时,排序完成 2. 具体实现 以如下待排序序列为例: 到此,第一次冒泡完成,最大值7冒泡到最后面。 然后继续对除最后元素(7)外的序列进行冒泡排序。具体实现如下: /** * 冒泡排序 * @param {Array} arr - 整型数组 * @returns {Array} ret - 排好序的数组 */ function bubbleSort(arr) { var n = arr.length, i = 0, temp; while(--n) { while (i < n) { // 如果前一个数大于后一个数,则互换位置 if(arr[i] > arr[i+1]) { temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } i++; } // 每次冒泡完成后,将i复位 i = 0; } return arr; } // 基于qunit的测试 test('bubble-sort',

android原生和H5交互(转)

自作多情 提交于 2020-02-01 09:11:28
最近在左一个Android原生的H5混合开发的APP,之前还没有好好的总结一下Android原生 和 H5 之间交互的方法,这里来总结一下: 1、hybrid通信,主要就是前端的js和我们Android端的通信 这是最基本JS和Java 的通信方式: 这里我们分四块来讲: (1)、js调用android原生的代码(不传递参数) (2)、js调用android原生的代码(传递参数) (3)、android原生调用JS的代码(不传递参数) (4)、android原生调用JS的代码(传递参数) 好的我们这里先来创建一个工程: 在工程的main文件夹下创建一个文件夹assets ,然后把写好的H5页面放入该文件夹中,H5页面代码如下: < pre name = " code " class = " html " > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < html xmlns = " http://www.w3.org/1999/xhtml " > < head > < meta http-equiv = " Content-Type " content = " text/html;

前端面试-JS篇

删除回忆录丶 提交于 2020-02-01 08:53:02
1.实现一个new操作符 new操作符做了这些事: 它创建了一个全新的对象 它会被执行[[Prototype]](也就是__proto__)链接。 它使this指向新创建的对象。 通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。 如果函数没有返回对象类型Object(包含Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象引用。 function New ( func ) { var res = { } ; if ( func . prototype !== null ) { res . __proto__ = func . prototype ; } var ret = func . apply ( res , Array . prototype . slice . call ( arguments , 1 ) ) ; if ( ( typeof ret === "object" || typeof ret === "function" ) && ret !== null ) { return ret ; } return res ; } function Add ( a , b ) { this . a = a ; this . b = b ; } Add .

前端入门Js笔记

巧了我就是萌 提交于 2020-02-01 07:19:53
T 001 ____________--信息页面展示 需求分析: 有一个页面,在页面上有很多文字信息,且格式不一. 技术分析: html: 文字标签: 字体标签: 标题标签: 其他标签: 排版标签: 段落标签: 水平线: 换行: 步骤分析: 1.创建html页面 2.添加标题标签 h1 3.添加一个水平线标签 4.添加4个段落标签 5.给指定的文字添加样式 案例2-图片页面展示 需求分析: 在一个页面上展示两张图片. 技术分析: html: 图片标签 ★★★ <img/> 步骤分析: 1.创建一个页面 2.添加两个图片标签 T003_____________-列表页面展示 需求分析: 有一个页面,页面上有一个友情链接,友情连接中包含多个超链接. 技术分析: 列表标签: 超链接标签: ★★★★★ <a></a> T004_______________________________4-首页面展示 需求分析: 有一个页面,页面上有很多文字和图片,且格式均不一. 技术分析: html: 表格(完成布局):★★ 步骤分析: 创建一个页面,在页面上提供一个8行1列的表格 1.嵌套一个1行3列的表格 图片 图片 超链接 2.给这一行添加黑色的背景,添加白色的文字 3.一张图片 4.嵌套一个3行7列的表格 a.第一行的7个单元格跨列合并 b.第二行的第一个单元格和第三行的第一个单元格跨行合并 c

JS实现全选功能

旧城冷巷雨未停 提交于 2020-02-01 07:06:03
000. 开始   学习JS有一段时间了,最近看了一些JS练手的小demo实例,自己也尝试着用JS进行实现。   全选功能是在很多注册页面、获取用户兴趣爱好、让用户勾选一些选项等页面中常见的一种效果,主要有全选/全不选,反选,重置,提交等几个功能。   现在我们就开一步一步的开始解析代码。另外注意一下,这里面运用到了一些外部的CSS文件和JS文件,单纯的只复制下面的代码可能不会出现你想要的结果,请移步github地址获取完整源代码: https://github.com/JinganGuo/JavascriptDemos 001. HTML部分 1 <!-- 2 @authors Guo Jingan (gja1026@163.com) 3 @date 2018-02-15 4 @intro 全选功能 5 !--> 6 <!DOCTYPE html> 7 <html lang="en"> 8 <head> 9 <meta charset="UTF-8"> 10 <title>全选功能练习(CheckAll)</title> 11 <link rel="stylesheet" href="style.css"> 12 <link rel="stylesheet" type="text/css" href="../commonCSS.css"> 13 <script src=

[JS]在新标签页中发送post请求

孤街醉人 提交于 2020-02-01 06:08:52
在新标签页中发送post请求 $ ( function ( ) { $ ( "#bt_Preview" ) . click ( function ( ) { $ ( '#form1' ) . removeAttr ( "target" ) ; var form = document . getElementById ( 'form1' ) ; form . action = "/地址" ; if ( verification ( $ ( "form" ) ) ) { var form = document . getElementById ( 'form1' ) ; form . action = "/地址" ; $ ( "#form1" ) . attr ( 'target' , '_blank' ) ; form . submit ( ) ; } } ) ; } ) 来源: CSDN 作者: hey_liar 链接: https://blog.csdn.net/hey_liar/article/details/103741332

[转]webstorm中js文件被识别成txt类型

与世无争的帅哥 提交于 2020-02-01 05:48:28
问题描述: webstorm中index.js文件被识别成txt格式,如下图。 原因: webstorm中js文件被识别成txt文件,原因在于txt类型识别了以当前js文件名命名的模式。 解决办法: File—Editor—FileTypes找到Text类型,将其中的index.js格式从中取消,apply—ok 拓展: 同理其他被识别成txt(或其他格式)的js文件 来源: https://www.cnblogs.com/blakeblake/p/10728335.html