首页 文章 精选 留言 我的

精选列表

搜索[前端设计],共10000篇文章
优秀的个人博客,低调大师

前端 JS 之 AJAX 简介及使用

概述 AJAX 是一个缩写,它的全名是 Asynchronous JavaScript and XML,意思就是异步 JavaScript 和 XML,即用JavaScript执行异步网络请求。 AJAX 不是一种新技术,而是一个在 2005 年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML CSS JavaScript DOM XML XSLT XMLHttpRequest 尽管 X 在 AJAX 中代表 XML, 但由于 JSON 的许多优势,比如更加轻量以及作为 Javascript 的一部分,目前 JSON 的使用比 XML 更加普遍。JSON 和 XML 都被用于在 AJAX 模型中打包信息。 AJAX 的优势 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。 AJAX 通过在后台与服务器进行少量数据交换,可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 XMLHttpRequest 对象 XMLHttpRequest(XHR)对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。XMLHttpRequest 在 AJAX 编程中被大量使用。 AJAX 的工作原理 其工作原理基本经过以下几个步骤: 客户端发送请求,请求交给 xhr。 xhr 把请求提交给服务。 服务器进行业务处理。 服务器响应数据交给 xhr 对象。 xhr 对象接收数据,由 JavaScript 把数据写到页面上。 AJAX 的创建步骤 根据 AJAX 的工作原理,它的创建步骤主要包括: 创建 XMLHttpRequest 对象,即创建一个异步调用对象。 创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息。 设置响应 HTTP 请求状态变化的函数。 发送 HTTP 请求。 获取异步调用返回的数据。 使用 JavaScript 和 DOM 实现局部刷新。 AJAX 的具体使用 以下是 使用 AJAX 的完整流程。 1. 创建 XMLHttpRequest 对象 const request = new XMLHttpRequest(); 2. 创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息 创建 HTTP 请求可以使用 XMLHttpReques t对象的 open() 方法,其语法代码如下: request.open(method, url, async, user, password); 参数解析: method 要使用的HTTP方法,比如 "GET"、"POST"、"PUT"、"DELETE" 等。 url 表示要向其发送请求的 URL 地址。 async (可选) 一个可选的布尔参数,表示是否异步执行操作,默认为 true。如果值为 false,send() 方法直到收到答复前不会返回。如果 true,已完成事务的通知可供事件监听器使用。如果 multipart 属性为 true 则这个必须为 true,否则将引发异常。 user (可选 用于认证用途的用户名,默认值为 null。 password (可选) 用于认证用途的密码,默认值为 null。 3. 设置响应 HTTP 请求状态变化的函数和服务端返回信息函数 创建完 HTTP 请求之后,应该就可以将 HTTP 请求发送给 Web 服务器了。然而,发送 HTTP 请求的目的是为了接收从服务器中返回的数据。从创建 XMLHttpRequest 对象开始,到发送数据、接收数据、XMLHttpRequest 对象一共会经历以下 5 种状态: 未初始化状态。在创建完 XMLHttpRequest 对象时,该对象处于未初始化状态,此时 XMLHttpRequest 对象的 readyState 属性值为 0。 初始化状态。在创建完 XMLHttpRequest 对象后使用 open() 方法创建了 HTTP 请求时,该对象处于初始化状态。此时 XMLHttpRequest 对象的readyState属性值为 1。 发送数据状态。在初始化 XMLHttpRequest 对象后,使用 send() 方法发送数据时,该对象处于发送数据状态,此时XMLHttpRequest 对象的 readyState 属性值为 2。 接收数据状态。Web 服务器接收完数据并进行处理完毕之后,向客户端传送返回的结果。此时,XMLHttpRequest 对象处于接收数据状态,XMLHttpRequest 对象的 readyState 属性值为 3。 完成状态。XMLHttpRequest 对象接收数据完毕后,进入完成状态,此时 XMLHttpRequest 对象的 readyState 属性值为 4。此时接收完毕后的数据存入在客户端计算机的内存中,可以使用 responseText 属性或 responseXml 属性来获取数据。 总的来说,readyState 属性的值有以下几种: 0 (未初始化) or (请求还未初始化) 1 (正在加载) or (已建立服务器链接) 2 (加载成功) or (请求已接受) 3 (交互) or (正在处理请求) 4 (完成) or (请求已完成并且响应已准备好) 只读属性 XMLHttpRequest.status 返回了 XMLHttpRequest 响应中的数字状态码。status 的值是一个无符号短整型。在请求完成前,status 的值为 0。值得注意的是,如果 XMLHttpRequest 出错,浏览器返回的 status 也为0: UNSENT(未发送) 0 OPENED(已打开) 0 LOADING(载入中) 200 DONE(完成) 200 var xhr = new XMLHttpRequest(); console.log('UNSENT', xhr.readyState); // readyState 为 0 xhr.open('GET', '/api', true); console.log('OPENED', xhr.readyState); // readyState 为 1 xhr.onprogress = function () { console.log('LOADING', xhr.readyState); // readyState 为 3 }; xhr.onload = function () { console.log('DONE', xhr.readyState); // readyState 为 4 }; xhr.send(null); 只有在XMLHttpRequest对象完成了以上5个步骤之后,才可以获取从服务器端返回的数据。因此,如果要获得从服务器端返回的数据,就必须要先判断XMLHttpRequest对象的状态: const xhr = new XMLHttpRequest(); xmlHttpRequest.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { // do something here } } 4. 发送HTTP请求 XMLHttpRequest.send(data); 结束 最后,附上一个简单的完整 AJAX 实例: <button id="ajaxButton" type="button">Make a request</button> <script> var httpRequest; document.getElementById("ajaxButton").addEventListener('click', makeRequest); function makeRequest() { httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = alertContents; httpRequest.open('GET', 'test.html'); httpRequest.send(); } function alertContents() { if (httpRequest.readyState === XMLHttpRequest.DONE) { if (httpRequest.status === 200) { alert(httpRequest.responseText); } else { alert('There was a problem with the request.'); } } } </script> ~ ~ ~ 本文完 ~ 学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂! 大家好!我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教! 知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

优秀的个人博客,低调大师

WebStorm 2021.2 EAP 发布,前端开发 IDE

WebStorm 2021.2 EAP 现已发布,这是其 2021 年的第二个 EAP 版本。 浏览器页面将在保存时重新加载 WebStorm 现在可以根据用户对相应的 HTML 文件或链接的 CSS 和 JavaScript 文件所做的修改,自动重新加载在浏览器中打开的页面。只要在 IDE 中自动或使用 Ctrl+S 保存更改,或在外部对文件进行更改,就会触发重新加载。 基于函数调用的参数类型的补完 对于函数体中的参数,WebStorm 现在将根据函数调用中使用的类型显示完成建议。 添加箭头功能的新动作 WebStorm 添加了一个新的实时模板,以帮助用户更快地添加箭头函数,如下所示。 优化 “Preferences/Settings” 对话框 现在在 Preferences/Settings 对话框中,有一个新的高级设置节点。这个节点包含一些额外的配置选项,它们中的大多数是从注册表中转移过来的。 此外,用户现在可以在 Preferences/Settings 对话框中打开的部分之间来回导航。 自动缓存和日志清除 现在,在每次重大更新之后,IDE会自动清理最后一次更新时间超过 180天 的任何缓存和日志目录。系统设置和插件目录将保持不变。要手动触发这一过程,请在主菜单中选择 "Help | Delete Leftover IDE Directories..."。 更多详细内容,请查看更新公告。

优秀的个人博客,低调大师

前端框架 Bootstrap 5 Beta 1 发布

Bootstrap 5 Beta 1 现已发布。官方表示,该版本包含了许多新功能以及重大更改。此后,其将只对功能、bug 和文档进行微调。本次更新的一些重点内容如下: 添加了 RTL 支持。具体变化有: CSS dist 文件的新 RTL 版本,其中包括网格、Reboot、实用工具和标准捆绑包。可参阅目录页面以获取文件的完整列表。 新的 RTL 文档帮助入门。 五个新的 RTL 示例展示了新的 RTL CSS 的运行情况,并将 Album、Checkout、Carousel、Blog 和 Dashboard 示例转换为所有新的从右到左的等效项。 两个新的 cheatsheet kitchen sink页面 重命名逻辑属性类 将 Popper 更新到 v2.x,并对其工具提示和弹出窗口进行了一些小改动。 在数据属性中添加命名空间 "bs"。示例如下: <div class="dropdown"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown" aria-expanded="false"> Dropdown button </button> <ul class="dropdown-menu" aria-labelledby="dropdownMenuButton"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </div> 添加新的 toast positioning JavaScript 改进和错误修复 通过 state 选项更新了具有 pseudo-classes支持的实用程序 API 更多详情可查看:https://github.com/twbs/bootstrap/releases/tag/v5.0.0-beta1

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册