IT兄弟连 JavaWeb教程 AJAX定义以及解决的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Ajax是"Asynchronous JavaScript And XML"的缩写(即:异步的JavaScript和XML),是一种实现无页面刷新获取服务器数据的混合技术,Ajax这个概念的最早提出者是Jesse James Garrett。我们知道,互联网最主要的功能在于"资源交换",当初发明互联网的科学家们也是基于这个动机。虽然在互联网中"资源交换"的主体都是计算机。但为了方便交流,我们通常将获取资源的一方称为客户端(主要的工具是浏览器),而将派发资源的一方称为服务端。

在AJAX技术出现之前,如果浏览器需要从服务器请求资源,其交互模式为"客户端发出请求 -> 服务端接收请求并返回相应HTML文档 -> 页面刷新,客户端加载新的HTML文档"。确实,这种交互模式十分简洁明了,而且非常符合人的直觉,对于那时游走于互联网中的极客而言,也确实够用了。但是随着时代的进步,互联网渐渐不只是极客们的娱乐场,越来越多商业化网站的出现,使互联网不再局限于满足人们"资源交换"的需求,人们开始期待能够在互联网中获得更好的"使用体验",而随着用户点击不断刷新页面的交互方式显然很难讨人喜欢。

AJAX技术的问世,不仅通过阻止浏览器接受响应时刷新页面提升了互联网用户的使用体验,还使开发者能够以更加微观的视角重新思考互联网应用的构建,从此,开发者将在"数据"层面而不是"资源"层面以更高的自由 度构建网站和Web应用。

有没有办法在页面数据变动时,只向服务器请求新的数据,并且在阻止页面刷新的情况下,动态的替换页面中展示的数据呢? -- 答案正是"AJAX"。

再试想这样一种情景,当用户点击页面中的某个按钮向服务器发送请求时,页面本质上只是一些数据发生了变化,而此时服务器却要将重绘的整个页面再返回给浏览器加载,这显然有悖于程序员的"DRY"原则,而且明明只是一些数据的变化却迫使服务器要返回整个HTML文档,这本身也会给网络带宽带来不必要的开销。

经典Web应用程序模型的工作方式如下:

用户界面中的大多数用户操作都会将HTTP请求触发返回Web服务器。服务器进行一些处理-检索数据、处理数字、与传统系统对话,然后向客户端返回HTML页面。这种方法具有很多技术意义,但是它并不能为用户带来出色的体验。虽然服务器正在做它应该做的事情,但是在服务器工作时用户只能等待它完成。

6dbbc3d724cf451aba22518b50053d50.png

图1  传统Web应用与使用AJAX的Web应用

 

显然,如果我们重新设计Web应用程序,我们就不会让用户等待。我们通过在用户和服务器之间引入中介(Ajax引擎),Ajax应用程序消除了Web上交互的启动-停止-启动-停止性质,浏览器不是加载网页,而是在会话开始时加载一个Ajax引擎-用JavaScript编写。该引擎负责呈现用户看到的界面并代表用户与服务器通信。Ajax引擎允许用户与应用程序的交互异步进行-与服务器的通信无关。因此,用户就不会在盯着空白的浏览器窗口和等待载入的图标或者等待服务器处理结束了。

同步的过程只有允许有一个进程在执行,比如服务端在处理数据的时候,那么客户端不能进行任何操作,处于一个阻塞的一个状态。

使用ajax的程序,服务端在处理数据的时候,客户端浏览器依然可以执行其他的操作,并没有阻塞状态,也就是一个时间段内可以有多个进程在执行。

66af218a6fb3466881a22a4358af58d4.png

图2  传统Web应用运行流程

 

5a83d22971a248bebb4683ba7b445f70.png

图3  使用AJAX的Web应用运行流程

转载于:https://my.oschina.net/u/4125915/blog/3057589

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echo和@echo_如何在Echo Show和Echo Spot上切换到24小时时钟

echo和echoIf you prefer the 24-hour clock format instead of the usual 12-hour format, Amazon recently (and quietly) added the ability to switch between the two on the Echo Show and Echo Spot. 如果您希望使用24小时制而不是通常的12小时制,那么Amazon…

生信入门-爱课程上的华中农业大学

1.生物大分子序列分析 2.主要技术 3.生物信息学的应用 4.应用2 转载于:https://www.cnblogs.com/BlueBlueSea/p/9610313.html

pc端文本_使用即将推出的Windows功能从PC发送文本

pc端文本Windows/Android/iPhone: Send and receive SMS messages on your PC, and access all the files on your phone without taking it out of your pocket. Windows / Android / iPhone:在PC上发送和接收SMS消息,并访问手机上的所有文件&#xff0…

非常详细的Exchange 功能路线图

非常详细的Exchange 功能路线图 此路线图可帮助您熟悉 Microsoft Exchange Server 2010 中的所有功能。第一部分列出了可通过 Exchange 管理控制台 (EMC) 或 Exchange 命令行管理程序管理的所有功能。该部分还说明如何在 EMC 中导航至功能,并提供指向相应管理主题的…

String类常用方法

定义方法类型描述public String(char[] value)构造直接将一个字符数组变为一个字符串public String(char[] value,int offset,int count)构造将一个指定范围的字符数组变为字符串public String(byte[] bytes)构造将一个byte数组全部变为字符串public String(byte[],bytes,int o…

python基础一 day6 文件操作

读写只会进行两步, r模式下写读 seek是按字节去找的 for line in f: for循环是一行一行的读取出来 strip默认去空格和换行符 空格、制表符、换行符、回车、换页垂直制表符和换行符称为 “空白字符” for in 一个不可变数据类型,比如字符串,先…

静态路由默认路由的配置

静态路由实验 负载均衡的一点是个人理解,有不正确之处欢迎批评指正。 R1配置: s0/0/0口:193.1.1.9/30(本地) next-hop 193.1.1.10/30 point-to-point link F0/0设置子接口:F0/0.1 172.17.115.1/24 VLAN1 F0/0.5 172.17.110…

r中汇率市场_如何在Word 2013表中汇总行和列

r中汇率市场If you’re working in Word and you need to total values in a table, you can do so without having to enter the data into Excel and then copy and paste it into Word. Word can do simple calculations such as summing, multiplying, and averaging. 如果…

敏捷开发

敏捷开发是1990年逐渐引起人们广泛关注的新型软件开发方式,它是具有应对快速变化需求的软件开发能力。相对于非敏捷开发,它是一种以客户需求为核心,持续迭代,循序渐进的开发方式,敏捷绝非是一种特定的开发方式,而是一种…

数据同步云端本地_如何从云端删除Windows 8的同步数据

数据同步云端本地The ability to sync data and settings between computers running Windows 8 is great, but it does mean that your information – possibly personal – is stored in the cloud. If you have changed your mind about syncing and want to remove your d…

前端roadmap

转载于:https://www.cnblogs.com/cleverle/p/9615061.html

国内是否可以安装alexa_Alexa可以听到您无法听到的命令,哪些黑客可以利用

国内是否可以安装alexaYour smart speaker can hear sounds that humans can’t, meaning attackers could hypothetically trigger a command without you noticing. It’s happening in labs right now. 您的智能扬声器可以听到人类听不到的声音,这意味着攻击者可…

ActiveMQ在windows下启动失败解决方案

activemq.xml文件中的<transportConnectors><!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --><transportConnector name"openwire" uri"tcp://0.0.0.0:61616?maximumConnections1000&amp;wireForma…

jest忽略如何添加忽略_大多数人忽略的基本家庭维护任务

jest忽略如何添加忽略Owning a home requires a lot of responsibility, most notably regular maintenance to keep everything working great. However, there are a handful of very basic home maintenance tasks that you might be forgetting about. 拥有房屋需要承担很多…

自定义常用input表单元素二:纯css实现自定义radio单选按钮

这是接着上一篇纯css自定义复选框checkbox的第二篇&#xff0c;自定义一个radio单选按钮&#xff0c;同样&#xff0c;采用css伪类和“”css选择器为思路&#xff0c;下面是预览图&#xff1a; 下面直入主题放代码&#xff1a;HTML部分 <!--两个name相同的radio--> <i…

Elasticsearch之kopf插件安装之后的浏览详解

比如&#xff0c;我的这里是http://192.168.80.200:9200/_plugin/kopf/ 1、cluster 2、nodes 3、rest 4、more 5、更多详情&#xff0c;随着深入&#xff0c;再贴写分享&#xff01; 本文转自大数据躺过的坑博客园博客&#xff0c;原文链接&#xff1a;http://www.cnblogs.com/…

邮件系统之webmail

courier-authlib 网址http://www.courier-mta.org/ flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里 虚拟用户&#xff1a;Maildir &#xff1a;/var/mailbox/Suexec apache ,httpdusergroupht…

如何将Microsoft Word文档转换为PDF

PDFs are handy for distributing documents so that they’re seen the same way by all parties. Typically, you’ll create documents using another app, and then convert them to PDF. Here’s how to do it for a Microsoft Word document. PDF易于分发文档&#xff0c…

ASP.NET WebApi 基于JWT实现Token签名认证

一、前言 开发提供数据的WebApi服务&#xff0c;最重要的是数据的安全性。那么对于我们来说&#xff0c;如何确保数据的安全将会是需要思考的问题。在ASP.NET WebService服务中可以通过SoapHead验证机制来实现&#xff0c;那么在ASP.NET WebApi中我们应该如何保证我们的接口安全…

Cage验证码生成器快速上手

Cage小巧&#xff0c;好用。这里在官方基础例子基础上做了扩展&#xff1a; 12345678910111213141516171819202122232425262728293031323334package com.lavasoft.ntv.web.common; import com.github.cage.IGenerator; import java.util.Random; /*** 验证码生成器 * * author …