当前位置: 首页 > news >正文

网站做优化效果怎样代码编辑器

网站做优化效果怎样,代码编辑器,鲜花网站模板,万网做网站HTML5【新特性总结】 HTML5 的新增特性主要是针对于以前的不足#xff0c;增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题#xff0c;基本是 IE9 以上版本的浏览器才支持#xff0c;如果不考虑兼容性问题#xff0c;可以大量使用这些新特性。…HTML5【新特性总结】 HTML5 的新增特性主要是针对于以前的不足增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题基本是 IE9 以上版本的浏览器才支持如果不考虑兼容性问题可以大量使用这些新特性。 语义元素Semantic Elements articlesectionnavasideheaderfooter 等元素提供了更多的网页结构信息使内容更加语义化。 视频和音频支持 video 和 audio 元素允许直接在浏览器中嵌入视频和音频支持多种格式如MP4, WebM等。 画布元素Canvas canvas 元素用于绘制图形、制作动画、创建游戏等可以通过JavaScript脚本控制。 地理定位Geolocation 通过 navigator.geolocation API允许网页访问用户的地理位置信息。 本地存储Local Storage 和 Session Storage 提供无须数据库的本地存储Local Storage 存储持久数据而 Session Storage 存储会话数据。 Web Workers Web Workers 允许主线程以外的后台线程执行JavaScript用于处理复杂计算避免阻塞用户界面。 WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 表单改进 新的表单元素 datalist、output新的input类型如 emailurlnumber 等以及自定义表单控件的样式。 拖放APIDrag and Drop 允许用户将元素从一个地方拖放到另一个地方而无需依赖任何插件。 离线应用和缓存 利用 applicationCache API可以使网页和资源在没有网络的情况下也能被访问。 一、HTML5 新增的语义化标签 header头部标签nav导航标签article内容标签section定义文档某个区域aside侧边栏标签footer尾部标签 这种语义化标准主要是针对搜索引擎的(seo)这些新标签页面中可以使用多次在 IE9 中需要把这些元素转换为块级元素其实移动端更喜欢使用这些标签 !-- HTML5新增的语义化标签---增强SEO --header头部nav导航栏/nav/headeraside侧边栏/asidemain主体区aticle文体1section第一部分/sectionsection第二部分/section/aticleaticle文体2section第一部分/sectionsection第二部分/section/aticleaticle文体3section第一部分/sectionsection第二部分/section/aticle/mainfooter底部区/footer二、HTML5 新增的多媒体标签 新增的多媒体标签主要包含两个 音频audio视频video 使用它们可以很方便的在页面中嵌入音频和视频而不再去使用 flash 和其他浏览器插件。 HTML5 在不使用插件的情况下也可以原生的支持视频格式文件的播放当然支持的格式是有限的。 当前 元素支持三种视频格式 尽量使用 mp4格式 video src文件地址 controlscontrols/videovideo controlscontrols width300source srcmove.ogg typevideo/ogg source srcmove.mp4 typevideo/mp4 您的浏览器暂不支持 video 标签播放视频 /video 当前 元素支持三种音频格式 尽量使用 mp3格式 常见属性 !-- HTML5新增的多媒体标签 --audio src1.mp3 controlscontrols autoplayautoplay looploop/audiovideo src2.mp4 controlscontrols autoplayautoplay looploop /viedo三、HTML表单增强 1.HTML5 新增的 input 类型 !-- HTML新增的表单类型 --input typeemailinput typeurlinput typedateinput typemonthinput typeweekinput typenumberinput typetelinput typesearchinput typecolor2.HTML5 新增的input属性 input typetext required placeholder请输入内容 autocompleteoffinput typefile multiple3.HTML新增的表单标签 1️⃣ 标签 标签规定了 元素可能的选项列表。 标签被用来在为 元素提供自动完成的特性。用户能看到一个下拉列表里边的选项是预先定义好的将作为用户的输入数据。 请使用 元素的 list 属性来绑定 元素。 input listbrowsers datalist idbrowsersoption valueInternet Exploreroption valueFirefoxoption valueChromeoption valueOperaoption valueSafari /datalist2️⃣output标签 output标签作为计算结果输出显示(比如执行脚本的输出)。 注意如果是字符串类型的数字才会被计算 form oninputx.valueparseInt(a.value)parseInt(b.value)0input typerange ida value50100input typenumber idb value50output namex fora b/output六、HTML5 Web Storage 使用HTML5可以在本地存储用户的浏览数据。 早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服务器上但是这些数据只用于用户请求网站数据上.它也可以存储大量的数据而不影响网站的性能. 数据以 键/值 对存在, web网页的数据只允许该网页访问使用。 客户端存储数据的两个对象为 localStorage - 用于长久保存整个网站的数据保存的数据没有过期时间直到手动去除。sessionStorage - 用于临时保存同一窗口(或标签页)的数据在关闭窗口或标签页之后将会删除这些数据。 在使用 web 存储前,应检查浏览器是否支持 localStorage 和 sessionStorage: 1️⃣localStorage对象 localStorage 对象存储的数据没有时间限制。第二天、第二周或下一年之后数据依然可用。 // 存储 localStorage.setItem(sitename, 菜鸟);// 查找 document.getElementById(result).innerHTML 网站名 localStorage.getItem(sitename);实例解析 使用 key“sitename” 和 value“菜鸟” 创建一个 localStorage 键/值对。检索键值为 “sitename” 的值然后将数据插入 id“result” 的元素中。 以上实例也可以这么写 // 存储 localStorage.sitename 菜鸟教程; // 查找 document.getElementById(result).innerHTML localStorage.sitename;移除 localStorage 中的 “sitename” : localStorage.removeItem(sitename);不管是 localStorage还是 sessionStorage可使用的API都相同常用的有如下几个以localStorage为例 保存数据localStorage.setItem(key,value);读取数据localStorage.getItem(key);删除单个数据localStorage.removeItem(key);删除所有数据localStorage.clear();得到某个索引的keylocalStorage.key(index); 提示: 键/值对通常以字符串存储你可以按自己的需要转换该格式。 2️⃣sessionStorage对象 sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后数据会被删除。 如何创建并访问一个 sessionStorage if (sessionStorage.clickcount) {sessionStorage.clickcountNumber(sessionStorage.clickcount)1; } else {sessionStorage.clickcount1; } document.getElementById(result).innerHTML在这个会话中你已经点击了该按钮 sessionStorage.clickcount 次 ;不管是 localStorage还是 sessionStorage可使用的API都相同常用的有如下几个以localStorage为例 保存数据sessionStorage.setItem(key,value);读取数据sessionStorage.getItem(key);删除单个数据sessionStorage.removeItem(key);删除所有数据sessionStorage.clear();得到某个索引的keysessionStorage.key(index); 七、HTML5 Web Worker 1️⃣为什么需要Web Worker 由于JavaScript语言采用的是单线程同一时刻只能做一件事如果有多个同步计算任务执行则在这段同步计算逻辑执行完之前它下方的代码不会执行从而造成了阻塞用户的交互也可能无响应。 但如果把这段同步计算逻辑放到Web Worker执行在这段逻辑计算运行期间依然可以执行它下方的代码用户的操作也可以响应了。 2️⃣Web Worker是什么 HTML5 提供并规范了 Web Worker 这样一套 API它允许一段 JavaScript 程序运行在主线程之外的另外一个线程Worker 线程中。 Web Worker 的作用就是为 JavaScript 创造多线程环境允许主线程创建 Worker 线程将一些任务分配给后者运行。这样的好处是一些计算密集型或高延迟的任务被 Worker 线程负担了主线程就会很流畅不会被阻塞或拖慢 3️⃣Web Worker分类 Web Worker 根据工作环境的不同可分为 专用线程 Dedicated Worker共享线程 Shared Worker Dedicated Worker的Worker只能从创建该Woker的脚本中访问而SharedWorker则可以被多个脚本所访问。 在开发中如果使用到 Web Worker目前大部分主要还是使用 Dedicated Worker的场景多它只能为一个页面所使用本文讲的也是这一类而Shared Worker可以被多个页面共享为跨浏览器 tab 共享数据提供了一种解决方案。 4️⃣Web Worker使用限制 ①同源限制 分配给 Worker 线程运行的脚本文件必须与主线程的脚本文件同源。 “同源策略”Same-origin policy是浏览器的一种安全措施它限制了一个源域名、协议和端口的文档或脚本如何与另一个源的资源进行交互。所谓的同源指的是三个标签协议、域名、端口完全一致 如果你想在主线程中使用 Web Worker那么你必须将 Web Worker 的脚本文件与主线程的脚本文件放置在同一个域、使用相同的协议例如都是 HTTPS 或者都是 HTTP和端口。如果你的主线程脚本运行在 “example.com” 域下的 “http” 协议并且端口是 “8080”那么你的 Web Worker 脚本也必须来自 “example.com” 域下的 “http” 协议端口为 “8080”。 ②文件限制 Worker 线程无法读取本地文件file://会拒绝使用 file 协议来创建 Worker实例它所加载的脚本必须来自网络。 ③DOM和BOM操作限制 Worker 线程所在的全局对象与主线程不一样区别是 无法读取主线程所在网页的 DOM 对象无法使用document、window、parent这些对象 ④通信限制 Worker 线程和主线程不在同一个上下文环境它们不能直接通信必须通过消息完成交互方法是postMessage和onMessage并且在数据传递的时候不管是什么类型的数据 Worker 是使用拷贝的方式。 ⑤脚本限制 Worker 线程不能执行alert()方法和confirm()方法但可以使用 XMLHttpRequest 对象发出 AJAX 请求也可以使用setTimeout/setInterval等API 5️⃣常用的API // 创建worker线程 const worker new Worker(aURL, options)• worker.postMessage(): 向 worker 的内部作用域发送一个消息消息可由任何 JavaScript 对象组成 • worker.terminate(): 立即终止 worker。该方法并不会等待 worker 去完成它剩余的操作worker 将会被立刻停止 • worker.onmessage:当 worker 的父级接收到来自其 worker 的消息时会在 Worker 对象上触发 message 事件 • worker.onerror: 当 worker 出现运行中错误时它的 onerror 事件处理函数会被调用。它会收到一个扩展了 ErrorEvent 接口的名为 error 的事件 worker.addEventListener(error, function (e) {console.log(e.message) // 可读性良好的错误消息console.log(e.filename) // 发生错误的脚本文件名console.log(e.lineno) // 发生错误时所在脚本文件的行号 })6️⃣常见的使用方式 ①直接定义脚本文件 const myWorker new Worker(aURL, options);aURL表示 worker 将执行的脚本的 URL脚本文件 即 Web Worker 所要执行的任务。 案例如下 // 主线程下创建worker线程 const worker new Worker(./worker.js)// 监听接收worker线程发的消息 worker.onmessage function (e) {console.log(主线程收到worker线程消息, e.data) }// 向worker线程发送消息 worker.postMessage(主线程发送hello world)worker.js // self 代表子线程自身即子线程的全局对象 self.addEventListener(message, function (e) {// e.data表示主线程发送过来的数据self.postMessage(worker线程收到的 e.data); // 向主线程发送消息 });Web Worker 的执行上下文名称是 self无法调用主线程的 window 对象的。上述写法等同于以下写法 this.addEventListener(message, function (e) {// e.data表示主线程发送过来的数据this.postMessage(worker线程收到的 e.data); // 向主线程发送消息 });将JS文件引入html挂在本地开发环境运行运行结果如下 主线程收到worker线程消息 worker线程收到的主线程发送hello world ②使用Blob和URL创建 除了这种通过引入js文件的方式也可以通过URL.createObjectURL()创建URL对象创建内嵌的worker 在JavaScript中URL.createObjectURL() 方法用于创建一个表示 Blob 对象或 File 对象的 URL。这个 URL 可以使用在任何需要 URL 的地方比如 img 标签的 src 属性或 a 标签的 href 属性中。当使用完该 URL 之后建议通过 URL.revokeObjectURL() 方法来释放 URL以便浏览器可以回收相关资源。 /*** const blob new Blob(array, options);* Blob() 构造函数返回一个新的 Blob 对象。blob 的内容由参数数组中给出的值的串联组成。* params array 是一个由ArrayBuffer, ArrayBufferView, Blob, DOMString 等对象构成的 Array* options type默认值为 它代表了将会被放入到 blob 中的数组内容的 MIME 类型。还有两个这里忽略不列举了*//*** URL.createObjectURL()静态方法会创建一个 DOMString其中包含一个表示参数中给出的对象的 URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的 URL 对象表示指定的 File 对象或 Blob 对象*/ const worker new Worker(URL.createObjectURL(blob));Blob 对象表示一个不可变、原始数据的类文件对象它的数据可以按文本或二进制的格式进行读取。File 接口基于 Blob继承了 blob 的功能并将其扩展以支持用户系统上的文件。Blob URL/Object URL 是一种伪协议允许 Blob 和 File 对象用作图像下载二进制数据链接等的 URL 源。在浏览器中我们使用 URL.createObjectURL 方法来创建 Blob URL该方法接收一个 Blob 对象并为其创建一个唯一的 URL其形式为 blob:origin/uuid浏览器内部为每个通过 URL.createObjectURL 生成的 URL 存储了一个 URL 到 Blob 映射。因此此类 URL 较短但可以访问 Blob。生成的 URL 仅在当前文档打开的状态下才有效它保存在内存中的。它允许引用 img、a 中的 Blob但如果你访问的 Blob URL 不再存在则会从浏览器中收到 404 错误 function func() {console.log(hello) }function createWorker(fn) {// const blob new Blob([fn.toString() fn()], { type: text/javascript })const blob new Blob([(${fn.toString()})()], { type: text/javascript })return URL.createObjectURL(blob) }createWorker(func)③Worker线程引入脚本 Worker线程内部要加载其他脚本可以使用 importScripts() // worker.js importScripts(constants.js);// self 代表子线程自身即子线程的全局对象 self.addEventListener(message, function (e) {self.postMessage(foo); // 可拿到 foo、getAge()、getName的结果值 });// constants.js const foo 变量;function getAge() {return 25; }const getName () {return jacky; };还可以同时加载多个脚本 importScripts(script1.js, script2.js);7️⃣实战应用场景 处理大量CPU耗时计算操作 大家最关心的还是 Web Worker 实战场景开头我们说到当有大量复杂计算场景时可使用 Web Worker !DOCTYPE html html langenheadmeta charsetUTF-8 /meta http-equivX-UA-Compatible contentIEedge /meta nameviewport contentwidthdevice-width, initial-scale1.0 /titleworker计算/title/headbodydiv计算从 1 到给定数值的总和/divinput typetext placeholder请输入数字 idnum /button onclickcalc()开始计算/buttonspan计算结果为span idresult-/span/spandiv在计算期间你可以填XX表单/divinput typetext placeholder请输入姓名 /input typetext placeholder请输入年龄 /scriptfunction calc() {const num parseInt(document.getElementById(num).value)let result 0let startTime performance.now()// 计算求和模拟复杂计算for (let i 0; i num; i) {result i}// 由于是同步计算在没计算完成之前下面的代码都无法执行const time performance.now() - startTimeconsole.log(总计算花费时间:, time)document.getElementById(result).innerHTML result}/script/body /html如上第一个输入框与按钮是负责模拟复杂计算的比如输入 10000000000点击开始计算这时主线程处理一直在处理同步计算逻辑在完成计算之前会发现页面处于卡顿的状态下方的两个输入框也无法点击交互在我的电脑这部分计算是花了14s左右这个卡顿时间给用户的体验就很差了。 打开控制台调用也可以看到这里CPU使用率是100% 如果把这部分计算交给 Web Worker 来处理修改代码 script const worker new Worker(./worker.js)function calc() {const num parseInt(document.getElementById(num).value)worker.postMessage(num) }worker.onmessage function (e) {document.getElementById(result).innerHTML e.data } /script./worker.js self.onmessage function (e) {calc(e.data) }function calc(num) {let result 0let startTime performance.now()// 计算求和模拟复杂计算for (let i 0; i num; i) {result i}// 由于是同步计算在没计算完成之前下面的代码都无法执行const time performance.now() - startTimeconsole.log(总计算花费时间:, time)self.postMessage(result) }然后重复上述一样的操作输入 10000000000 计算会发现下方两个输入框可正常流畅输入整个页面也不卡顿。 Worker 运行独立于主线程的后台线程中分担执行了大量占用CPU密集型的操作但运行时间并不会变短解放了主线程主线程就能及时响应用户操作而不会造成卡顿的现象。使用Web Worker后控制台工具可看到CPU使用率处于较低正常水平计算过程跟没计算之前的水平一样。 八、HTML5 WebSocket WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单允许服务端主动向客户端推送数据。在 WebSocket API 中浏览器和服务器只需要完成一次握手两者之间就直接可以创建持久性的连接并进行双向数据传输。 在 WebSocket API 中浏览器和服务器只需要做一个握手的动作然后浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。 现在很多网站为了实现推送技术所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔如每1秒由浏览器对服务器发出HTTP请求然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点即浏览器需要不断的向服务器发出请求然而HTTP请求可能包含较长的头部其中真正有效的数据可能只是很小的一部分显然这样会浪费很多的带宽等资源。 HTML5 定义的 WebSocket 协议能更好的节省服务器资源和带宽并且能够更实时地进行通讯。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求连接建立以后客户端和服务器端就可以通过 TCP 连接直接交换数据。 当你获取 Web Socket 连接后你可以通过 send() 方法来向服务器发送数据并通过 onmessage 事件来接收服务器返回的数据。 1️⃣创建WebSocket连接返回连接的实例对象 以下 API 用于创建 WebSocket 对象。 var ws new WebSocket(url, [protocol] ); 以上代码中的第一个参数 url, 指定连接的 URL。第二个参数 protocol 是可选的指定了可接受的子协议。 2️⃣WebSocket实例属性 ws.readyState 只读属性 readyState 表示连接状态可以是以下值 0 - 表示连接尚未建立。1 - 表示连接已建立可以进行通信。2 - 表示连接正在进行关闭。3 - 表示连接已经关闭或者连接不能打开。 3️⃣WebSocket 事件 以下是 WebSocket 对象的相关事件。假定我们使用了以上代码创建了 Socket 对象 事件事件处理程序描述openws.onopen连接建立时触发messagews.onmessage客户端接收服务端数据时触发errorws.onerror通信发生错误时触发closews.onclose连接关闭时触发 4️⃣WebSocket 方法 以下是 WebSocket 对象的相关方法。假定我们使用了以上代码创建了 Socket 对象 方法描述Socket.send()使用连接发送数据Socket.close()关闭连接 5️⃣WebSocket本质 WebSocket 协议本质上是一个基于 TCP 的协议。 为了建立一个 WebSocket 连接客户端浏览器首先要向服务器发起一个 HTTP 请求这个请求和通常的 HTTP 请求不同包含了一些附加头信息其中附加头信息Upgrade: WebSocket表明这是一个申请协议升级的 HTTP 请求服务器端解析这些附加的头信息然后产生应答信息返回给客户端客户端和服务器端的 WebSocket 连接就建立起来了双方就可以通过这个连接通道自由的传递信息并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。 !DOCTYPE HTML htmlheadmeta charsetutf-8title菜鸟教程(runoob.com)/titlescript typetext/javascriptfunction WebSocketTest(){if (WebSocket in window){alert(您的浏览器支持 WebSocket!);// 打开一个 web socketvar ws new WebSocket(ws://localhost:9998/echo);ws.onopen function(){// Web Socket 已连接上使用 send() 方法发送数据ws.send(发送数据);alert(数据发送中...);};ws.onmessage function (evt) { var received_msg evt.data;alert(数据已接收...);};ws.onclose function(){ // 关闭 websocketalert(连接已关闭...); };}else{// 浏览器不支持 WebSocketalert(您的浏览器不支持 WebSocket!);}}/script/headbodydiv idssea hrefjavascript:WebSocketTest()运行 WebSocket/a/div/body /html 九、HTML5 地理位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私需要用户授权否则用户位置信息是不可用的。 let geoloc window.navigator.geolocation let success function(msg){} let error function(msg){} geoloc.getCurrentPosition(success, // 获取定位成功后执行的回调函数 error, // 获取定位失败后执行的回调函数 option // {}对象类型, 指定定位配置参数 );一旦定位成功, 将会输出如下位置信息: coords: Coordinatesaccuracy: 19218 定位准确度 altitude: 0 海拔高度 altitudeAccuracy: null 海拔准确度heading: NaN latitude: 39.9078 纬度longitude: 116.3975 经度speed: NaN 运动速度 timestamp: 1636426246419 毫秒时间戳接入第三方位置服务平台 - 百度地图/高德地图 高德地图 JS API 是一套 JavaScript 语言开发的的地图应用编程接口移动端、PC端一体化设计一套 API 兼容众多系统平台。目前 JS API 免费开放使用。 JS API 提供了2D、3D地图模式满足绝大多数开发者对地图展示、地图自定义、图层加载、点标记添加、矢量图形绘制的需求同时也提供了 POI 搜索、路线规划、地理编码、行政区查询、定位等众多开放服务接口。 高德的开发平台https://lbs.amap.com/demo/list/js-api 步骤 ①注册账号并申请Key 首先注册开发者账号成为高德开放平台开发者登陆之后在进入「应用管理」 页面「创建新应用」为应用添加 Key「服务平台」一项请选择「 Web 端 ( JSAPI ) 」 ②基本使用 新建一个html页面新增一个div, 设置css与id属性.引入高德地图的script脚本. (替换自己申请的key)创建map对象, 在div中初始化地图. 注意第三方地图的API也支持定位所以也不需要使用该HTML5特性 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta http-equivX-UA-Compatible contentIEedge /meta nameviewport contentwidthdevice-width, initial-scale1.0 /titleDocument/titlestyle#container {width: 640px;height: 360px;border: 1px solid black;}/style/headbodydiv idcontainer/divscripttypetext/javascriptsrchttps://webapi.amap.com/maps?v1.4.15key申请的key/scriptscriptlet geoloc window.navigator.geolocation;geoloc.getCurrentPosition(res {let lat res.coords.latitude; //纬度let lng res.coords.longitude; //精度//初始化地图var map new AMap.Map(container, {zoom: 18, //级别center: [lng, lat], //中心点坐标viewMode: 3D, //使用3D视图});//添加点标记var marker new AMap.Marker({position: [lng, lat],});map.add(marker);//弹出信息窗体marker.on(click, e {var infoWindow new AMap.InfoWindow({isCustom: false, //使用默认窗口content: div信息窗体/div,offset: new AMap.Pixel(16, -45),closeWhenClickMap: true,});infoWindow.open(map, marker.getPosition());});//引入AMap的插件AMap.plugin([AMap.ToolBar,AMap.Scale,AMap.OverView,AMap.MapType,AMap.Geolocation,AMap.PlaceSearch, //POI搜索AMap.Geocoder, //地理编码地址解析],function () {//完成地理编码str - 坐标let geocoder new AMap.Geocoder({city: 北京,extensions: all,});geocoder.getLocation(北京大学, (s, res) {console.log(地理编码, res);});//逆地理编码坐标 - strgeocoder.getAddress([106, 35], (s, res) {console.log(逆地理编码, res);});// 在图面添加工具条控件工具条控件集成了缩放、平移、定位等功能按钮在内的组合控件map.addControl(new AMap.ToolBar());// 在图面添加比例尺控件展示地图在当前层级和纬度下的比例尺map.addControl(new AMap.Scale());// 在图面添加鹰眼控件在地图右下角显示地图的缩略图map.addControl(new AMap.OverView({ isOpen: true }));// 在图面添加类别切换控件实现默认图层与卫星图、实施交通图层之间切换的控制map.addControl(new AMap.MapType());// 在图面添加定位控件用来获取和展示用户主机所在的经纬度位置map.addControl(new AMap.Geolocation({buttonOffset: new AMap.Pixel(20, 50),}));//位置对象检索搜索//创建PlaceSearch对象按关键字搜索相关位置结果let placeSearch new AMap.PlaceSearch({city: 重庆, //指定城市/区号pageSize: 50,});placeSearch.search(学校, (status, result) {console.log(status:, status);console.log(result:, result);});placeSearch.getDetails(B000A816R6, (status, res) {console.log(res);});});},err {console.warn(err);},{ timeout: 5000 });/script/body /html十、HTML5 画布元素 十一、HTML5 拖放API 在日常开发中拖拽功能无疑是一个常见的需求场景。为了更好地满足这一需求HTML5提供了一套便捷的拖放API。这些API不仅能够帮助开发者轻松实现拖拽效果还可以提高排查拖拽问题的效率甚至可以让我们更加灵活地自定义拖拽场景和设计能力。 十二、HTML5 应用缓存
文章转载自:
http://www.morning.kqylg.cn.gov.cn.kqylg.cn
http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn
http://www.morning.dljujia.com.gov.cn.dljujia.com
http://www.morning.kqrql.cn.gov.cn.kqrql.cn
http://www.morning.fmqw.cn.gov.cn.fmqw.cn
http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn
http://www.morning.zpqlf.cn.gov.cn.zpqlf.cn
http://www.morning.dtnjr.cn.gov.cn.dtnjr.cn
http://www.morning.mgwpy.cn.gov.cn.mgwpy.cn
http://www.morning.ygkb.cn.gov.cn.ygkb.cn
http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn
http://www.morning.yrxcn.cn.gov.cn.yrxcn.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn
http://www.morning.snccl.cn.gov.cn.snccl.cn
http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn
http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn
http://www.morning.mldrd.cn.gov.cn.mldrd.cn
http://www.morning.lcplz.cn.gov.cn.lcplz.cn
http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn
http://www.morning.mdwb.cn.gov.cn.mdwb.cn
http://www.morning.rdgb.cn.gov.cn.rdgb.cn
http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn
http://www.morning.jwefry.cn.gov.cn.jwefry.cn
http://www.morning.srky.cn.gov.cn.srky.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn
http://www.morning.jxpwr.cn.gov.cn.jxpwr.cn
http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn
http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn
http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn
http://www.morning.rtlg.cn.gov.cn.rtlg.cn
http://www.morning.mqbdb.cn.gov.cn.mqbdb.cn
http://www.morning.byywt.cn.gov.cn.byywt.cn
http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn
http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn
http://www.morning.lczxm.cn.gov.cn.lczxm.cn
http://www.morning.qqnp.cn.gov.cn.qqnp.cn
http://www.morning.bpyps.cn.gov.cn.bpyps.cn
http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn
http://www.morning.xrksf.cn.gov.cn.xrksf.cn
http://www.morning.xpmwt.cn.gov.cn.xpmwt.cn
http://www.morning.lqznq.cn.gov.cn.lqznq.cn
http://www.morning.bcngs.cn.gov.cn.bcngs.cn
http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn
http://www.morning.gzzxlp.com.gov.cn.gzzxlp.com
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn
http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn
http://www.morning.sjbty.cn.gov.cn.sjbty.cn
http://www.morning.shsh1688.com.gov.cn.shsh1688.com
http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn
http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn
http://www.morning.wlsrd.cn.gov.cn.wlsrd.cn
http://www.morning.trrd.cn.gov.cn.trrd.cn
http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn
http://www.morning.dspqc.cn.gov.cn.dspqc.cn
http://www.morning.ctfwl.cn.gov.cn.ctfwl.cn
http://www.morning.zcsch.cn.gov.cn.zcsch.cn
http://www.morning.yknsr.cn.gov.cn.yknsr.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn
http://www.morning.bqrd.cn.gov.cn.bqrd.cn
http://www.morning.ynryz.cn.gov.cn.ynryz.cn
http://www.morning.mtymb.cn.gov.cn.mtymb.cn
http://www.morning.c7629.cn.gov.cn.c7629.cn
http://www.morning.nqcts.cn.gov.cn.nqcts.cn
http://www.morning.ljdd.cn.gov.cn.ljdd.cn
http://www.morning.xuejitest.com.gov.cn.xuejitest.com
http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn
http://www.morning.tslxr.cn.gov.cn.tslxr.cn
http://www.morning.qwfl.cn.gov.cn.qwfl.cn
http://www.morning.stmkm.cn.gov.cn.stmkm.cn
http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn
http://www.morning.tkrdg.cn.gov.cn.tkrdg.cn
http://www.morning.yhtnr.cn.gov.cn.yhtnr.cn
http://www.morning.hotlads.com.gov.cn.hotlads.com
http://www.morning.mgfnt.cn.gov.cn.mgfnt.cn
http://www.morning.gwmjy.cn.gov.cn.gwmjy.cn
http://www.morning.dschz.cn.gov.cn.dschz.cn
http://www.tj-hxxt.cn/news/234675.html

相关文章:

  • 谈谈设计和建设网站体会沈阳做网站的公司有哪些
  • 我的网站百度找不到网站布局优化
  • 如何用工控做网站网站页面优化技巧
  • 移动网站开发与维护公司网站建设沈阳
  • 安徽天筑建设集团网站五金加工厂怎么做网站
  • 宇宙企画网站网站续费申请
  • 网站流量和带宽html的seo搜索优化
  • 招商加盟网站大全做网页设计网站有哪些
  • 济南个人网站建设每天能赚30 50元的
  • 网站建设费用高贸易平台有哪些
  • 怎么从建设部网站下载规范如何创立个人网站
  • 酷家乐网站做墙裙教程沈阳网站建设专业公司
  • 英文网站建设报价录播教育系统网站建设费用
  • 建设美团网站商务网站创建经费预算
  • 建设工程 质量 协会网站网站制作哪里做得好
  • 重庆网站定制公司wordpress 新建用户
  • 潍坊网站建设团队品牌推广策划方案案例
  • 金花站长工具上海自聊自做网站
  • 2017网站设计趋势简单网页源代码
  • 太原网站建设开发公司qq降龙是哪个公司开发的
  • 网站建设业务提成廊坊学校网站建设
  • 公关网站建设前端开发好学吗
  • 给女朋友做网站 知乎wordpress电视直播代码
  • 网站完整模板大都会app最新版本下载
  • 甘南网站建设在线教育网站开发
  • 长治一般做一个网站需要多少钱互联网保险下架
  • 网站行高电子商务网站分类
  • 凯里小程序开发公司seo工作内容有哪些
  • 沙田镇网站建设公司网站301是什么意思
  • 外贸英文网站建设价格资阳建设网站