首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【如果你要学JS 】——this指向及其同步异步

{ console.log(this); } } q.say(); var btn = document.querySelector...这样所导致的问题是:如果JS执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。同步任务 同步任务都在主线程上执行,形成个执行栈。异步任务 JS的异步是通过回调函数实现的。...一般而言,异步任务有以下三种类型: 1、普通事件,如click、 resize等 2、资源加载,如load、error等 3、定时器,包括setInterval、setTimeout等 异步任务相关回调函数添加到任务队列中...一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。...="submit" value="登录"> body> // 利用substr把?

13610

JavaScript IndexedDB 完整指南

IndexedDB 用于在浏览器中存储数据,对于需要离线工作的 web 应用程序(如大多数进步的 web 应用程序)尤其重要。 首先,让我们介绍一下为什么需要将数据存储在 web 浏览器中。...这在不断发展的 web 应用程序中尤为重要,这些应用程序复制了原生应用程序的感觉,但却位于浏览器中。这些渐进的 web 应用程序必须离线工作,因此需要一个存储选项。...幸运的是,有几种关于如何在浏览器中存储数据的工具,可以在线和离线访问数据。 1....** 错误提示:** 如果你正在运行一个热重新加载 web 服务器,如 liveserver,你可能会看到一个错误,没有存储。这是因为 onupgradedneeded 函数在你写完函数之前就执行了。...如果另一个浏览器选项卡打开了一个更新的数据库版本号的应用程序,它将被阻止升级,直到所有旧版本选项卡关闭 / 重新加载。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BOM

    作用:有了窗口加载事件就可以把 JS 代码放在页面元素上方。因为 load 事件是等页面内容完全加载完毕,才去执行事件处理函数。 例子: 应用背景:当页面的图片很多时,从用户访问到 onload 触发可能需要较长的时间,会影响到用户的体验,此时用 DOMContentLoaded 事件更合适。 用法和 load 事件类似。...普通函数按照代码顺序直接调用,而 setTimeout 需要等待时间,时间到了才调用函数,因此被称为回调函数。 注册事件时的事件处理函数也是回调函数。...来源 例子: const start = document.querySelector(".start"); const stop = document.querySelector(".pause...普通事件,如 click,resize 等 资源加载,如 load,error 等 定时器,如 setTimeout,setInterval 等 例子: console.log(1); //①

    1.3K20

    【JavaScript】JavaScript开篇基础(6)

    body> window.onload = function () { var btn = document.querySelector...; }) } 点击 body> 在以上代码中,我们没有按照之前的标准,将script标签写在...因此,JavaScript在设计的时候,就已经考虑到这个问题,主线程可以完全不用等待时间长的任务,可以先挂起处于等待中的任务,先运行排在后面的任务,再回过头执行挂起的时间长的任务。...、resize等 2、资源加载,如load、error等 3、定时器,包括setlnterval、setTimeout等 setTimeout(function(...与assign() 方法不同的是,调用 replace() 方法后,之前页面不会保存到会话历史中,这样,用户点击回退按钮时,将不会再跳转回该页面,而assign可以回退到之前页面。

    7910

    webAPIs02-事件

    能够判断函数运行的环境并确字 this 所指代的对象 理解事件的作用,知道应用事件的 3 个步骤 目标 学习会为 DOM 注册事件,实现简单可交互的网页特交。... body> 完成事件监听分成3个步骤: 获取 DOM 元素 通过 addEventListener 方法为 DOM 节点添加事件监听 等待事件触发,如用户点击了某个按钮时便会触发... 结论:【事件类型】决定了事件被触发的方式,如 click 代表鼠标单击,dblclick 代表鼠标双击。...鼠标事件 鼠标事件是指跟鼠标操作相关的事件,如单击、双击、移动等。...'我是回调函数...'); } // 调用定时器 setInterval(fn, 1000); fn 函数做为参数传给了 setInterval ,这便是回调函数的实际应用了

    76110

    JavaScript IndexedDB 完整指南

    IndexedDB 用于在浏览器中存储数据,对于需要离线工作的 web 应用程序(如大多数进步的 web 应用程序)尤其重要。 首先,让我们介绍一下为什么需要将数据存储在 web 浏览器中。...这在不断发展的 web 应用程序中尤为重要,这些应用程序复制了原生应用程序的感觉,但却位于浏览器中。这些渐进的 web 应用程序必须离线工作,因此需要一个存储选项。...幸运的是,有几种关于如何在浏览器中存储数据的工具,可以在线和离线访问数据。 1....❝「错误提示:」如果你正在运行一个热重新加载 web 服务器,如 liveserver,你可能会看到一个错误,没有存储。这是因为 onupgradedneeded 函数在你写完函数之前就执行了。...如果另一个浏览器选项卡打开了一个更新的数据库版本号的应用程序,它将被阻止升级,直到所有旧版本选项卡关闭 / 重新加载。

    1.9K10

    控制页面的滚动:自定义下拉到刷新和溢出效果

    当用户点击滚动边界时,某些应用可能希望提供不同的用户体验 ? (在Chrome Android上滚动链接) 拉到刷新效果 拉到刷新是一种直观的手势,通过Facebook和Twitter等移动应用推广。...拉下页面并释放,为更新近的帖子被加载。事实上,这种特殊用户体验非常流行,以至于Android这样的移动浏览器都采用了相同的效果。向下滑动页面顶部会刷新整个页面 ? ?...示例 - 带和不带过度滚动行为的模态:包含 ? ? (左边之前:页面内容在叠加层下滚动,右边之后:页面内容不会在叠加层下滚动) 禁用拉到刷新 关闭pull-to-refresh操作是一行CSS。...(左边为之前,右边为之后) 以下是完整代码的一部分 body.refreshing #inbox { filter: blur(1px); touch-action:...(左边之前:下拉滚动边界显示辉光,右边之后:下拉时辉光禁用) 注意:这仍然会保留左/右滑动导航。

    3.5K20

    回调地狱

    我们已知道回调函数是必须得依赖另一个函数执行调用,它是异步执行的,也就是需要时间等待,典型的例子就是Ajax应用,比如http请求,在不刷新浏览器的情况下,当你执行DOM事件时,比如页面上点击某链接,回车等事件操作...function postResponse (err, response, body) { var statusMessage = document.querySelector('.status...} function postResponse (err, response, body) { var statusMessage = document.querySelector('.status...以下是我们现在的应用程序特定代码的外观 var formUploader = require('formuploader') document.querySelector('form').onsubmit...如果需要花费几分钟时间 承诺/生成器/ES6等呢 在研究更先进的解决方案之前,请记住,回调是JavaScript的基本组成部分(因为它们只是函数),你应该在学习更先进的语言特性之前学习如何读写它们,

    2.3K10

    24 个 ES6 实用方法,用来解决实际开发的 JS 问题

    ('title')); // true elementContains(document.querySelector('body'), document.querySelector('body'));...Example get(obj, 'selector.to.val', 'target[0]', 'target[2].a'); // ['val to select', 1, 'test'] 13.如何在等待指定时间后调用提供的函数...; delay( function(text) { console.log(text); }, 1000, 'later' ); // 1秒后打印 'later' 14.如何在给定元素上触发特定事件且能选择地传递自定义数据...c - c / 8); } } // 事例 scrollToTop() window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画...该方法需要传入一个回调函数作为参数,该回调函数会在浏览器下一次重绘之前执行。 requestAnimationFrame:优势:由系统决定回调函数的执行时机。

    81910

    JS快速入门(二)

    (默认)_parent 加载到父框架_self 替换当前页面_top 替换任何可加载的框架集 features 设置新打开窗口的功能样式(如:width=500) replace true – 替换浏览历史中的当前条目...常用的节点属性获取方式 方法 说明 getAttribute() 返回元素一个指定的属性值 直接使用属性名称获取 适用于部分属性(如:title,value,href) document.querySelector...--在 div 中写入 h1 标签,如果原来div中有内容会被覆盖--> body> body> document.querySelector...,关闭窗口,窗口滚动等,掌握如何处理窗口事件可以帮助我们实现更加丰富的交互效果; 常用窗口事件 方法 说明 load 当整个页面及所有依赖资源(如样式表和图片)都已完成加载时,将触发load事件 beforeunload...('.box').innerHTML) } 主要内容 此处 JS 代码在元素之前,所以应该将代码放在 load 事件中,等待元素加载完成后再

    6.6K30

    【腾讯云 Cloud Studio 实战训练营】丝滑体验:用 Cloud Studio 实现一个精确计时的时钟

    而 Cloud Studio 是一个基于云计算的 Web 端开发微服务平台,提供了代码编辑器、调试器、代码库,以及自动构建和部署工具等各种功能,帮助开发者在云端开发应用程序。...那么,现在我就来分享一下我是如何在 Cloud Studio 上快速创建这 Web 时钟动画的。...将该值设置为 -1000,你的动画状态就像页面加载时已经播放了一秒钟一样。 对于用户来说,动画似乎在他们甚至还没有考虑访问你的页面之前就已经开始播放了。...支持多种编程语言,如 Java、Python、JavaScript 等,以及一些常见的框架,如 Node.js、Spring Boot 等,这样就可以满足各种开发需求。...Cloud Studio 还提供了很多强大的开发工具,如代码自动补全、调试、断点等功能,可以大大提高开发效率。

    45141

    BOM概述

    > 窗口加载事件 我们的JavaScript代码常常在HTML和CSS构造之后才会运行,因而JavaScript代码常常放于HTML的body底部 但是window的窗口加载事件可以改变我们的...-- 正常情况下,我们的script应该写在body末尾,写在这个部分是无法正常使用的 --> // 这时就需要采用页面加载事件来等待页面加载完成后再去加载...,resize等 资源加载 : 如load,error等 定时器: 包括Timeout,Interval等 因而JavaScript的执行机制如下: 先执行执行栈中的同步任务 异步任务(回调函数)放入任务队列中...一旦执行栈的所有同步任务执行完毕,系统就会按照次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,加载进执行栈的末尾并开始执行 我们给出一张图片来解释上述内容: location对象 在学习...location对象之前,我们先来了解一下URL: 统一资源定位符(URL)是互联网上标准资源的地址.

    1.2K10
    领券