JavaScript威望指南笔记(下)- 客户端javascript

web阅读器中的javascript

在html中嵌入javascript

在script标签内里假如有<、&,会被当做xml标记,须要运用以下写法:

<script>
<![CDATA[
// 代码
]]>
</script>

window对象

阅读器定位与导航

载入新的文档

  • location.assign()
  • location.replace()
  • location.reload() 革新

阅读汗青

  • history.back()
  • history.forward()
  • history.go()

阅读器和屏幕信息

navigator:{
   appName:,
   appVersion:,
   userAgent:,
   platform:,
   *onLine:,
   *geolocation:,
   *javaEnabled:,
   *cookieEnable:,
}
// 星号为未标准化

毛病处置惩罚

window.onerror

翻开和封闭窗口

  • window.open()
  • window.open().opener
  • window.close()

窗体之间的关联

  • 外部猎取iframe内容,iframe.contentWindow
  • iframe内部猎取iframe,window.frameElement
  • window.frames援用本身包含的窗口或窗体的子窗体

剧本化文档

拔取文档元素

  • getElementById
  • getElementByName
  • getElementByTagName
  • getElementByClassName
  • querySelectorAll 接收css挑选器
  • querySelector 返回第一个婚配的元素

文档组织和遍历

作为节点树的文档

  • parentNode
  • childNodes
  • firstChild,lastChild
  • nextSibling,previoursSibling
  • nodeType
  • nodeValue
  • nodeName

作为元素树的文档

  • firstElementChild,lastElementChild
  • nextElementChild,previoursElementChild
  • childElementCount

猎取和设置非标准HTML属性

  • getAttribute()
  • setAttribute()
  • hasAttribute()
  • removeAttribute()

操纵来自其他定名空间中属性的xml文档,能够运用以下要领,第一参数为标识定名空间的uri,第二个为属性的当地名字

  • getAttributeNS()
  • setAttributeNS()
  • hasAttributeNS()
  • removeAttributeNS()

作为html的元素内容

  • insertAdjacentHTML() 在指定元素相邻位置插进去标记,第一个参数为位置(beforebegin、afterbegin、beforeend,afterend),第二个参数为插进去的标记

作为纯文本的元素内容

  • node.textContent 读取或许猎取文本内容,ie运用innerText

建立、插进去和删除节点

建立节点

  • createElement 建立Element节点
  • createTextNode 建立文本节点
  • cloneNode 复制节点
  • importNode

插进去节点

  • Node.appendChild
  • Node.insertBefore

删除和替代节点

  • removeChild
  • replaceChild

文档和元素的多少外形和转动

????????

html表单

表单和元素的属性

  • type
  • form
  • name
  • value

要领:

  • reset()
  • submit()

表单和元素的事宜处置惩罚递次

不会被reset()和submit()触发,仅被按钮触发

  • onsubmit
  • onreset

能够经由过程在事宜中返回false来阻挠默许事宜实行

其他文档属性

  • cookie
  • domain
  • lastModified
  • location
  • referrer
  • title
  • URL
  • document.writr()要领

查询拔取的文本

window.getSelection()

可编辑内容

  • 元素属性contenteditable
  • Document的designMode属性为on,全部文档能够编辑

实行元素编辑敕令,execCommand()

剧本化CSS

CSS概览

层叠

CSS中的C代表层叠,有低到高递次为:

  • web阅读器的默许款式
  • 文档的款式表
  • 每一个html元素的style属性

事宜处置惩罚

异步事宜驱动编程模子

18.剧本化HTTP

Ajax:Asynchronous JavaScript and XML

完成Ajax和Comet体式格局:

  • img标签的src
  • iframe的src(跨域)
  • scritp(即JSONP,不跨域)
  • XMLHttpRequest对象

运用XMLHttpRequest

var request= new XMLHttpRequest();

http要求构成:

  • http要求要领或行动
  • 正在要求的url
  • 一个可选的要求头鸠合
  • 一个可选的要求主体

服务器返回的http相应构成:

  • 一个由数字和文字构成的状况码,标识要求胜利或许失利
  • 一个相应头鸠合
  • 相应主体

指定要求

  • 挪用open要领

第一个参数指定HTTP要领或许行动,第二个参数指定要求的URL

var request= new XMLHttpRequest();
var request.open('GET','data.csv');
  • 增加头部
var request.setRequestHeader('Conten-Type','text/plain') //设置头部

以下头部不能自己设置:
《JavaScript威望指南笔记(下)- 客户端javascript》

  • 发送要求
request.send(null);
// send参数为要求主体

取得相应

  • status和statusText以数字和文本情势返回HTTP状况码
  • getResponseHeader()和getAllResponseHeaders()查询相应头
  • responseText中猎取文本情势的相应主体,responseXML中猎取Document情势的相应主体
  • readyState属性标识相应状况:

《JavaScript威望指南笔记(下)- 客户端javascript》

  • readystatechange绑定事宜处置惩罚递次,readyState转变均会触发此事宜,也能够运用addEventListener

《JavaScript威望指南笔记(下)- 客户端javascript》

同步相应

open的第三个参数传false,将运用同步相应,此时不须要事宜处置惩罚递次

相应编码

request.overrideMimeType("text/plain;charset=utf-8")

HTTP进度事宜

  • 挪用send时触发loadstart()
  • 加载服务器相应时,触发progress
  • 超时触发timeout()
  • 中断触发abort()
  • 毛病触发error()

progress经常使用属性:

  • loaded:现在传输的字节数
  • total:团体字节长度

中断要乞降超时

  • abort()

跨域HTTP要求

  • CORS:跨域资源共享

借助<script>发送HTTP要求:JSONP

// 指定回调函数称号
url?jsonp=xxx
url?callback=xxx

客户端存储

情势:

  • web存储:localStrorage、sessionStrorage
  • cookie:针对服务端剧本设想,每一次HTTP要求都邑传输到服务端
  • 离线Web运用
  • web数据库
  • 文件体系API

localStrorage和sessionStrorage

区分:

  • localStrorage永久性,作用域限定在文档源级别
  • sessionStrorage有效期仅在在本次会话中,作用域限定在文档源级别,且仅限在本标签页

设置

  • localStrorage.key=value
  • localStrorage.setItem(key,value)

猎取

  • localStrorage.key
  • localStrorage.getItem(key)

删除

  • delete localStrorage.key (IE8不支持)
  • localStrorage.removeItem(key)
  • localStrorage.clear()

监听转变

运用addEventListener

事宜对象:

  • key clear()时为null
  • newValue removeItem()时为null
  • oldValue 新增时为null
  • storageArea localStorage或sessionStrorage对象
  • url 触发地点文档的url

cookie

  • navigator.cookieEnabled检测cookie是不是可用(启用)
  • 有效期为本次会话时期,默许有效期为直到阅读器封闭,假如要延伸能够设置max-age,单元秒
  • 作用域默许对本页面、本页面同目次和子目次可见,不过能够设置其domain和path

设置cookie

document.cookie=”key=encodeURIComponent(value);max-age=seconds”

猎取cookie

document.cookie,能够运用decodeURIComponent剖析

限定

  • 阅读器最大300
  • 每一个web服务器20
  • 保留数据最大4k

运用递次存储和离线web运用???

21.多媒体和图形编程

剧本化图片

new Image()
// 能够运用此体式格局提早强迫缓存图片

剧本化音频和视频

new Audio('src/demo.wav')   // 音频组织函数,和拔取标签取得的对象一样

范例挑选和加载

运用canPlayType(MIME范例)测试一个媒体元素是不是能播放指定范例的媒体文件

let a=new Audio();
a.canPlayType("audio/wav")

运用lode()要领加载source标签指定的媒体源

掌握媒体播放

  • play()
  • pause()
  • 设置currentTime定点播放
  • volumn示意音量,介于0~1
  • muted静音形式
  • playbackRate:播放速率,默许1.0,负值示意回放
  • controls播放控件
  • loop轮回播放
  • preload预加载,none不预加载,metadata预加载元数据,auto
  • autoplay

查询媒体状况

  • paused
  • seeking 进度跳转中
  • ended 播放完,loop为true时永不为true
  • duration媒体时长,载入前为NAN
  • initialTime最先时候
  • played已播放的时候段
  • buffered已缓冲的时候段
  • seekable须要跳到的时候段

《JavaScript威望指南笔记(下)- 客户端javascript》

  • readyState

《JavaScript威望指南笔记(下)- 客户端javascript》

  • networkState

《JavaScript威望指南笔记(下)- 客户端javascript》

  • error

《JavaScript威望指南笔记(下)- 客户端javascript》

媒体相干事宜

《JavaScript威望指南笔记(下)- 客户端javascript》
《JavaScript威望指南笔记(下)- 客户端javascript》

SVG:可伸缩的矢量图形

canvas中的图形

大部分的画布绘制API都不是在canvas元素上定义,而是定义在一个绘制上下文对象上。

getContext() 用来猎取上下文对象,传入’2d’参数会取得CanvasRenderingContext2D对象,传入’webgl’能够取得3D图形的上下文。

<canvas id="demo"></canvas>
<script>
    let canvas = document.getElementById('demo');
    let context = canvas.getContext('2d')
    context.fillStyle="#0000ff"
    context.fillRect(0,0,50,20)
    context.fill()
</script>

绘制线段和添补多边形

c.beginPath() //最先一条新途径
c.moveTo(100,100) //从(100,100)最先定义一条新的子途径
c.lineTo(200,200) //从(100,100)到(200,200)绘制一条线段
c.fill() // 添补地区
c.stroke() // 勾画线段
c.closePath()  // 封闭途径,行将尽头和出发点连接起来
非零绕数准绳

《JavaScript威望指南笔记(下)- 客户端javascript》

图形属性

《JavaScript威望指南笔记(下)- 客户端javascript》
《JavaScript威望指南笔记(下)- 客户端javascript》

  • save()将当前图外形态压入用于保留状况的栈上
  • restore() 从栈中弹出并恢复近来一次保留的状况

画布的尺寸和坐标

  • 尺寸:canvas元素的width和height属性和画布对象的宽度高度决议画布的尺寸
  • 坐标:画布左上角为原点

坐标系转换

当前变更矩阵:定义画布的当前坐标系

绘制和添补曲线

《JavaScript威望指南笔记(下)- 客户端javascript》

矩形

  • fillRect()
  • stokeRect()
  • clearRect()
  • rect()

色彩、透明度、渐变以及图案

  • strokeStyle、fillStyle
  • globalAlpha
  • 应用createPattern()要领添补图案
var image = document.getElementById('myimage')
c.fillStyle=c.createPattern(image,'repeat')
// 第一个参数指定添补的图案,能够是img元素(包含经由过程Image组织函数建立)、canvas元素、video元素;第二个参数定义平铺体式格局
  • 应用CanvasGradient对象建立渐变

《JavaScript威望指南笔记(下)- 客户端javascript》

线段绘制相干的属性

  • lineWidth:默许为1,恣意正数,小于1的小数时绘制半透明
  • lineCap:封顶
  • lineJoin

《JavaScript威望指南笔记(下)- 客户端javascript》

文本

fillText()/strokeText():

  • 第一个参数为文本内容
  • 第二个和第三个参数分别为绘制X、Y坐标
  • textAlign/textBaseline

《JavaScript威望指南笔记(下)- 客户端javascript》

  • 第四个参数指定显现宽度,假如文本溢出则会缩放画布或许采纳更窄更小的字体
  • 在绘制前能够经由过程measureText()器量文本宽度

裁剪

clip()

暗影

  • shadowColor:色彩
  • shadowOffsetX、shadowOffsetY偏移量
  • shadowBlur隐约度

图片

drawImage():

  • 第一个参数为图片源,能够是img元素(包含经由过程Image组织函数建立)、canvas元素、video元素
  • 第二个和第三个参数分别为绘制X、Y坐标
  • 假如通报5个参数,盈余两个指定宽高
  • 假如通报9个参数,2~5参数指定源矩形地区,6~9指定目的矩形地区

toDataURL(),画布元素本身的要领,提取成一张图片,同源限定

  • 第一个参数指定MIME范例,默许png

合成

《JavaScript威望指南笔记(下)- 客户端javascript》
《JavaScript威望指南笔记(下)- 客户端javascript》

像素操纵

《JavaScript威望指南笔记(下)- 客户端javascript》

掷中检测

  • isPointInPath() 指定点是不是在途径上
  • getImageData() 检测指定点是不是已绘制

HTML5 API

地理位置

navigator.geolocation

navigator.geolocation.getCurrentPosition() // 猎取当前位置,异步
navigator.geolocation.wathcPosition() // 猎取并监听当前位置,转变触发还调,异步
navigator.geolocation.clearWatch() //住手监听 

汗青记录治理

  • location.hash、hashchange
  • history.pushState()、popstate、history.replaceState()

跨域音讯通报

postMessage(data数据,url目的窗口源),触发目的窗口window.onmessage,事宜对象属性:

  • data:内容
  • source:音讯来源window
  • origin:音讯来源url

Web Worker

Worker对象

let worke= new Worker('./worker.js') // 建立worker实例
// 假如地点是相对地点,那末受同源战略限定
worke.postMessage(data) // 将数据通报(组织性复制)给worker

// 在worker对象中接收音讯
worke.onmessage=function(e){
    let data=e.data
}
// 捕获毛病
worke.onerror=function(e){
    console.log(e.filename)
    console.log(e.lineno)
}
// 也能够运用addEventListener和removeEventListener替代以上要领

worke.terminate() // 运用完封闭历程

worker作用域

建立的worker在一个全新的运转环境中,即WorkerGlobalScope全局对象,该对象有以下属性和要领:

  • onmessage=fn(e) 接收外部传来的数据
  • postMessage(data) 发送音讯出去
  • close() 封闭当前worker
  • importScript(url1,url2…) 加载库代码 同步
  • self 本身援用
  • 计时器相干
  • location
  • navigator
  • 经常使用的事宜目的要领,addEventLisitener、removeEventListener
  • onerror

范例化数组和ArrayBuffer

类数组对象,和通例数组区分:

  • 范例化数组元素均为数字,在建立时就决议了数组中数字的范例和大小(单元:位)
  • 范例化数组有牢固长度
  • 在建立范例化数组时,数组中元素老是默许为0

一共有8种:
《JavaScript威望指南笔记(下)- 客户端javascript》
要领:

  • set() 将一个通例或许范例化数组复制到别的一个范例化数组中
let bytes=new Uint8Array(1024)
let pattern=new Uint8Array([0,1,2,3])
bytes.set(pattern)
bytes.set(pattern,4) // 4为偏移量
bytes.set([0,1,2,3],8)
  • subarray(start,end) 返回部分内容

DataView定义了8个set和get要领

Blob

是对大数据块的不透明援用或许句柄。示意二进制大对象

let blob= new BlobBuilder()
blob.append("data")
blob.size //字节大小
blob.type // MIME范例
blob.slice(0,1024,'text/plain')

读取blob

应用FileReader对象

文件体系API

let fs = requestFileSystemSync(PERSISTENT,1024*1024)
requestFileSystemSync(TEMPORARY,// 有效期
    50*1024*1024,// 大小:50MB
    function(fs){//fs为该文件体系对象 
    
    },function(err){

    
})

客户端数据库

  • webSQL 弃用
  • indexedDB 对象数据库
let indexedDB=window.indexedDB
let request=indexedDB.open('dbName')
request.onerror=function(err){}
request.onsuccess=function(){
    let db=request.result
}

web套接字

let socket=new WebSocket(url) // ws://或许wss://协定
socket.onopen=function(e){}
socket.onclose=function(e){}
socket.onerror=function(e){}
socket.onmessage=function(e){}
socket.send('hello')
socket.close()
    原文作者:BWrong
    原文地址: https://segmentfault.com/a/1190000017840907
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞