文章分类 -  前端 / 行为-JavaScript

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 14 下一页

JavaScript :网络请求之长轮询(Long polling)(十)
摘要:长轮询是与服务器保持持久连接的最简单的方式,它不使用任何特定的协议,例如 WebSocket 或者 Server Sent Event。 它很容易实现,在很多场景下也很好用。 从服务器获取新信息的最简单的方式是定期轮询。也就是说,定期向服务器发出请求:“你好,我在这儿,你有关于我的任何信息吗?”例如 阅读全文

posted @ 2022-12-09 17:25 梁飞宇 阅读(187) 评论(0) 推荐(0)

JavaScript :网络请求之可恢复的文件上传(九)
摘要:使用 fetch 方法来上传文件相当容易。 连接断开后如何恢复上传?这里没有对此的内建选项,但是我们有实现它的一些方式。 对于大文件(如果我们可能需要恢复),可恢复的上传应该带有上传进度提示。由于 fetch 不允许跟踪上传进度,我们将会使用 XMLHttpRequest。 不太实用的进度事件 要恢 阅读全文

posted @ 2022-12-09 17:18 梁飞宇 阅读(55) 评论(0) 推荐(0)

JavaScript :网络请求之XMLHttpRequest(八)
摘要:XMLHttpRequest 是一个内建的浏览器对象,它允许使用 JavaScript 发送 HTTP 请求。 虽然它的名字里面有 “XML” 一词,但它可以操作任何数据,而不仅仅是 XML 格式。我们可以用它来上传/下载文件,跟踪进度等。 现如今,我们有一个更为现代的方法叫做 fetch,它的出现 阅读全文

posted @ 2022-12-09 17:13 梁飞宇 阅读(348) 评论(0) 推荐(0)

JavaScript :网络请求之URL 对象(七)
摘要:内建的 URL 类提供了用于创建和解析 URL 的便捷接口。 没有任何一个网络方法一定需要使用 URL 对象,字符串就足够了。所以从技术上讲,我们并不是必须使用 URL。但是有些时候 URL 对象真的很有用。 创建 URL 对象 创建一个新 URL 对象的语法: new URL(url, [base 阅读全文

posted @ 2022-12-09 16:45 梁飞宇 阅读(211) 评论(0) 推荐(0)

JavaScript :网络请求之Fetch API(六)
摘要:到目前为止,我们已经对 fetch 相当了解了。 现在让我们来看看 fetch 的剩余 API,来了解它的全部本领吧。 ❗️ 请注意: 请注意:这些选项 (option) 大多都很少使用。即使跳过本章,你也可以很好地使用 fetch。 但是,知道 fetch 可以做什么还是很好的,所以如果需要,你可 阅读全文

posted @ 2022-12-09 16:37 梁飞宇 阅读(787) 评论(0) 推荐(0)

JavaScript :网络请求之Fetch:跨源请求(五)
摘要:如果我们向另一个网站发送 fetch 请求,则该请求可能会失败。 例如,让我们尝试向 http://example.com 发送 fetch 请求: try { await fetch('http://example.com'); } catch(err) { alert(err); // fetc 阅读全文

posted @ 2022-12-09 16:26 梁飞宇 阅读(334) 评论(0) 推荐(0)

JavaScript :网络请求之Fetch:中止(Abort)(四)
摘要:正如我们所知道的,fetch 返回一个 promise。JavaScript 通常并没有“中止” promise 的概念。那么我们怎样才能取消一个正在执行的 fetch 呢?例如,如果用户在我们网站上的操作表明不再需要某个执行中的 fetch。 为此有一个特殊的内建对象:AbortControlle 阅读全文

posted @ 2022-12-09 16:15 梁飞宇 阅读(1245) 评论(0) 推荐(0)

JavaScript :网络请求之Fetch:下载进度(三)
摘要:fetch 方法允许去跟踪 下载 进度。 请注意:到目前为止,fetch 方法无法跟踪 上传 进度。对于这个目的,请使用 XMLHttpRequest,我们在后面章节会讲到。 要跟踪下载进度,我们可以使用 response.body 属性。它是 ReadableStream —— 一个特殊的对象,它 阅读全文

posted @ 2022-12-09 16:09 梁飞宇 阅读(1216) 评论(0) 推荐(0)

JavaScript :网络请求之FormData(二)
摘要:这一章是关于发送 HTML 表单的:带有或不带文件,带有其他字段等。 FormData 对象可以提供帮助。你可能已经猜到了,它是表示 HTML 表单数据的对象。 构造函数是: let formData = new FormData([form]); 如果提供了 HTML form 元素,它会自动捕获 阅读全文

posted @ 2022-12-09 16:01 梁飞宇 阅读(525) 评论(0) 推荐(0)

JavaScript :网络请求之Fetch(一)
摘要:JavaScript 可以将网络请求发送到服务器,并在需要时加载新信息。 例如,我们可以使用网络请求来: 提交订单, 加载用户信息, 从服务器接收最新的更新, ……等。 ……所有这些都没有重新加载页面! 对于来自 JavaScript 的网络请求,有一个总称术语 “AJAX”(Asynchronou 阅读全文

posted @ 2022-12-09 15:55 梁飞宇 阅读(1029) 评论(0) 推荐(0)

JavaScript :二进制数据,文件之File 和 FileReader(四)
摘要:File 对象继承自 Blob,并扩展了与文件系统相关的功能。 有两种方式可以获取它。 第一种,与 Blob 类似,有一个构造器: new File(fileParts, fileName, [options]) fileParts —— Blob/BufferSource/String 类型值的数 阅读全文

posted @ 2022-12-08 14:43 梁飞宇 阅读(781) 评论(0) 推荐(0)

JavaScript :二进制数据,文件之Blob(三)
摘要:arrayBuffer 和视图(view)都是 ECMA 标准的一部分,是 JavaScript 的一部分。 在浏览器中,还有其他更高级的对象,特别是 Blob,在 File API 中有相关描述。 Blob 由一个可选的字符串 type(通常是 MIME 类型)和 blobParts 组成 —— 阅读全文

posted @ 2022-12-08 14:39 梁飞宇 阅读(985) 评论(0) 推荐(0)

JavaScript :二进制数据,文件之TextDecoder 和 TextEncoder(二)
摘要:如果二进制数据实际上是一个字符串怎么办?例如,我们收到了一个包含文本数据的文件。 内建的 TextDecoder 对象在给定缓冲区(buffer)和编码格式(encoding)的情况下,允许将值读取为实际的 JavaScript 字符串。 首先我们需要创建: let decoder = new Te 阅读全文

posted @ 2022-12-08 14:30 梁飞宇 阅读(1775) 评论(0) 推荐(0)

JavaScript :二进制数据,文件之ArrayBuffer,二进制数组(一)
摘要:在 Web 开发中,当我们处理文件时(创建,上传,下载),经常会遇到二进制数据。另一个典型的应用场景是图像处理。 这些都可以通过 JavaScript 进行处理,而且二进制操作性能更高。 不过,在 JavaScript 中有很多种二进制数据格式,会有点容易混淆。仅举几个例子: ArrayBuffer 阅读全文

posted @ 2022-12-08 14:27 梁飞宇 阅读(2430) 评论(0) 推荐(0)

JavaScript :Frame 和 window之点击劫持攻击(三)
摘要:“点击劫持”攻击允许恶意页面 以用户的名义 点击“受害网站”。 许多网站都被黑客以这种方式攻击过,包括 Twitter、Facebook 和 Paypal 等许多网站。当然,它们都已经被修复了。 原理 原理十分简单。 我们以 Facebook 为例,解释点击劫持是如何完成的: 访问者被恶意页面吸引。 阅读全文

posted @ 2022-12-08 14:14 梁飞宇 阅读(152) 评论(0) 推荐(0)

JavaScript :Frame 和 window之跨窗口通信(二)
摘要:“同源(Same Origin)”策略限制了窗口(window)和 frame 之间的相互访问。 这个想法出于这样的考虑,如果一个用户有两个打开的页面:一个来自 john-smith.com,另一个是 gmail.com,那么用户将不希望 john-smith.com 的脚本可以读取 gmail.c 阅读全文

posted @ 2022-12-08 14:02 梁飞宇 阅读(306) 评论(0) 推荐(0)

JavaScript :Frame 和 window之弹窗和 window 的方法(一)
摘要:弹窗(popup)是向用户显示其他文档的最古老的方法之一。 基本上,你只需要运行: window.open('https://javascript.info/') ……它将打开一个具有给定 URL 的新窗口。大多数现代浏览器都配置为在新选项卡中打开 url,而不是单独的窗口。 弹窗自古以来就存在。最 阅读全文

posted @ 2022-12-08 13:50 梁飞宇 阅读(658) 评论(0) 推荐(0)

JavaScript 浏览器:杂项 之事件循环:微任务和宏任务(三)
摘要:浏览器中 JavaScript 的执行流程和 Node.js 中的流程都是基于 事件循环 的。 理解事件循环的工作方式对于代码优化很重要,有时对于正确的架构也很重要。 在本章中,我们首先介绍事件循环工作方式的理论细节,然后介绍该知识的实际应用。 事件循环 事件循环 的概念非常简单。它是一个在 Jav 阅读全文

posted @ 2022-12-07 15:59 梁飞宇 阅读(59) 评论(0) 推荐(0)

JavaScript 浏览器:杂项 之选择(Selection)和范围(Range)(二)
摘要:在本章中,我们将介绍文档中的选择以及在表单字段(如 <input>)中的选择。 JavaScript 可以访问现有的选择,选择/取消全部或部分 DOM 节点的选择,从文档中删除所选部分,将其包装到一个标签(tag)中,等。 你可以在本章末尾的“总结”部分找到一些常见的使用方式。可能就已经满足了你当前 阅读全文

posted @ 2022-12-07 15:48 梁飞宇 阅读(1649) 评论(0) 推荐(0)

JavaScript 浏览器:杂项 之DOM 变动观察器(Mutation observer)(一)
摘要:MutationObserver 是一个内建对象,它观察 DOM 元素,并在检测到更改时触发回调。 我们将首先看一下语法,然后探究一个实际的用例,以了解它在什么地方有用。 语法 MutationObserver 使用简单。 首先,我们创建一个带有回调函数的观察器: let observer = ne 阅读全文

posted @ 2022-12-07 15:18 梁飞宇 阅读(533) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 14 下一页