初涉ajax

      Ajax由Html,JavaScript,DHtml,DOM组成,使用Ajax可以实现无刷新的数据交互。传统的数据交互方式是页面发送请求到服务器端,服务器端响应结果然会给页面,一般情况下都是整个页面进行刷新。使用Ajax可以实现局部刷新(可能你只需要刷新部分表单,而非整个表单),最常用的例子是,我们在用户注册的时候,往往会有一个功能是提示检测该用户名是否被占用。如果使用老的提交方式,返回结果重新刷新整个页面,可能用户先前操作的数据都不存在了。大部分网站选择的是局部刷新的方式。只刷新用户名框。这里使用Ajax可以轻松实现,下面我们一步一步的来揭开Ajax的神秘面纱吧。我们主要分为下面几个步骤来说:

 

  • 创建Request对象
<script language="javascript" type="text/javascript">
var xmlHttp = new XMLHttpRequest();
</script> 

     如上所示可以简单的获得XMLHttpRequest()方法。Ajax 基本上就是把 JavaScript 技术和 XMLHttpRequest 对象放在 Web 表单和服务器之间。当用户填写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给服务器。JavaScript 代码在幕后发送请求,页面无任何刷新。并且请求是异步发送的,就是说 JavaScript 代码(和用户)不用等待服务器的响应,其和服务器响应同步运行。

     但是有个问题就是js在不同的浏览器之间运行是具有不同的效果的,创建request对象也不例外。这里我们将上面的代码做下细化

<script language="javascript" type="text/javascript">
         
		/* 创建一个新的Request */
			var xmlHttp = false;
			if (@_jscript_version >= 5)
			try {
			  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			  try {
			    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			  } catch (e2) {
			    xmlHttp = false;
			  }
			}
			//非IE浏览器的Request的创建
			if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
			  xmlHttp = new XMLHttpRequest();
			}
</script>

   如上所示,可以应对不同浏览器之间Request的创建问题。这段代码的核心分为三步:

 

  1. 建立一个变量 xmlHttp 来引用即将创建的 XMLHttpRequest 对象。
  2. 尝试在 Microsoft 浏览器中创建该对象:
    • 尝试使用 Msxml2.XMLHTTP 对象创建它。
    • 如果失败,再尝试 Microsoft.XMLHTTP 对象。
  3. 如果仍然没有建立 xmlHttp,则以非 Microsoft 的方式创建该对象。

    最后,xmlHttp 应该引用一个有效的 XMLHttpRequest 对象,无论运行什么样的浏览器。

    创建好Request我们要做什么呢?往下看。

 

  • 从表单获取值,并发送请求

 

    我们先来看一个需要无刷新操作的表单

<form>
		 <p>username: <input type="text" name="username" id="username" size="25" 
		       onChange="callServer();" /></p>
		 <p>password: <input type="text" name="password" id="password" size="25" 
		      onChange="callServer();" /></p>
</form>

   这个表单提供两个输入框,一个用于输入密码,一个用于输入用户名,我们这里做个简单的判断用户名是否被占用的无刷新操作。我们继续来看下,如何通过JS代码来从表单获取需要操作的数据,并向服务器端发送数据

function callServer() {
		  // 从表单当中获取用户名
		  var username = document.getElementById("username").value;		 
		  //判断用户名是否为空
		  if ((username == null) || (username == "")) return;		  
		  //构建需要发送请求的地址
		  var url = "<%=basePath%>ajaxDemo1?username=" + username;
		  // 建立连接,第一个参数表示请求方法,第二个参数为请求地址,第三个参数表示是否异步操作
		  xmlHttp.open("GET", url, true);
		  // 设置响应函数
		  xmlHttp.onreadystatechange = updatePage;
		  // 发送请求
		  xmlHttp.send(null);
		}

     以上代码很明确的表明了ajax的一个操作过程,首先需要从表单当中获取需要交给服务器端处理的数据。构建需要提交的服务器地址,本段代码当中url即为需要提交的服务器地址。参数在URL当中传递。构建玩提交的服务器地址以后,需要建立和服务器端的连接。这里的open方法其实提供5个参数:提交方式,提交地址,是否异步,用户名,密码。一半情况下不需要进行身份验证,所以这里值输入了三个参数。建立连接以后,我们需要设置服务器端响应以后的处理函数。

xmlHttp.onreadystatechange设置相应函数,这里服务器端返回的状态交由updatePage方法处理,该方法将会在后面

给出。一切搞定以后,下面干what呢?当然是发送请求了啊。

     发送请求以后服务器端会进行相应的处理。下面就是啥了呢?

 

  • 处理请求

 

    服务器端处理完毕以后,会返回给客户端,按照前面的设置返回只交由updatePage方法处理,updatePage

方法的实现如下图所示:

function updatePage() {
	if (xmlHttp.readyState == 4) {
		var response = xmlHttp.responseText;
		alert(response);
	         //document.getElementById("result").value = response;
	}
}

    现在要面对服务器的响应了。现在只需要知道如下两点:

  • 直到 xmlHttp.readyState 属性的值等于 4才处理相应请求。
  • 服务器将把响应填充到 xmlHttp.responseText 属性中。

 

    本程序当中将处理结果提示给用户

    这里贴一下服务器端的部分代码吧:

response.setContentType("text");
String responseText = "OK";
String name = request.getParameter("username");
//String password = request.getParameter("password");
if(name.equals("foolfish")){
	responseText = "the username is used";
}
PrintWriter out=response.getWriter();
System.out.println("responsetext = " + responseText);
 out.println(responseText);
 out.close();

 好了,先写这么多吧,后面学习到更多的东西,继续往上面添。

 

 

三菱PLC FX3U温度控制系统案例 U0\G100是平均次数的设置,设置为100个数据取平均,这样数据显示更加稳定,通道1的数据显示再U0\G10里面,温度模块的数据对应是0~150°输出0~10V,对应到0~10000的数据10000是150°的66.667倍,因此把数据传送到D0后转换成浮点数,再去除以66.667,就得到实际的温度了,数据存放到D2。触摸屏软件使用EBpro软件,设计界面如下,右边的是温度的实时曲线图,左边的是温度报警表,当当前温度超过了报警温度这种时,就会在这个表格上显示对应对应的报警。(1)实时显示温度值; 阅读详情

相关推荐

c语言串口编程详解

串口: 一种异步通信接口,通常用于低速数据传输。RS-232: 最常见的串口标准,定义了电气特性、连接器和信号线。UART: 通用异步收发传输器,是实现串口通信的硬件模块。通过以上内容,你应能够理解并实现C语言在Windows和Linux平台上的串口编程。希望这本手册能帮助你在实际项目中顺利进行串口通信开发。如果有任何疑问或需要进一步的帮助,请随时提问。

jkzyx123的博客 2224

Ajax初涉

学习Ajax是在住院期间开始的,对于Ajax的所有认识就是王兴魁老师的实战视频,缺乏一个宏观把控,回家之后通过查资料,对于Ajax除了具体的细节使用,有了一个更加宏观的认识,总结如下。    Ajax是什么?     首先声明AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术,也可以说是一种创建快速动态网页的技术。     AJAX的英文表示即“As

暂七师师长常乃超 1269

树莓派介绍与可安装的操作系统

树莓派是一款由英国树莓派基金会开发的信用卡大小的微型计算机。处理器(CPU)内存(RAM)图形处理器(GPU)USB 接口网络接口(以太网和 Wi-Fi)视频输出(HDMI)音频输出用户只需添加电源、存储卡、显示器和输入设备(键盘、鼠标),就可以将其当作一台功能齐全的电脑使用。主要特点:低成本:价格亲民,适合教育和个人项目。小巧便携:体积小,便于携带和部署。功能强大:支持多种编程语言和操作系统,功能不逊于传统电脑。树莓派从最初的教育工具发展成为功能强大的多用途平台。最新的树莓派 5。

像风一样自由的博客 2197

初涉AJAX

初涉AJAX 转载请注明出处 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 是在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。 0. 【写在前面】标准的、带有回调函数的AJAX代码 var xmlhttp...

weixin_30349597的博客 98

LM358实战:手把手教你搭建电流检测电路(附电阻选型计算)

本文详细解析了使用LM358运算放大器搭建电流检测电路的全过程,包括基础原理、采样电阻选型、放大电路设计及PCB布局技巧。通过实战案例和精确计算,帮助工程师快速掌握低成本、高精度的电流检测方案,适用于电源管理、电机控制等多种应用场景。

weixin_30872157的博客 448

Linux单独编译设备树,开发者分享 | Petalinux 工程中设备树的介绍

本文来自XILINX嵌入式产品应用工程师 Terry Ni设备树是 Petalinux kernel 的关键组件,接下来以 2020.1 版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的。Petalinux 工程中设备树的位置当我们创建了一个 petalinux 工程后(以zcu102为例),在编译的时候,会自动生成对应的设备树文件。这些设备树的...

weixin_28877107的博客 2591

初涉JavaScript原生Ajax

用惯了jQuery的$.ajax(),的确写个回调函数又方便又快。 但是不会用原生的JS AJAX可不行啊,其实也没有想象的复杂,初涉原生的AJAX还是先拿解析JSON数据来练练手。 新建一个json.txt { "info": [ {"name":"zhangsan","age":"26"}, {"name":"lisi","age":"27"}, {"name":"wangw...

weixin_30463341的博客 139

代谢组数据分析(十五):基于python语言构建PLS-DA分类预测模型

本教程阐述典型代谢组学数据分析工作流程,用于二元分类结果的研究。流程主要步骤如下:首先从 Excel 表格导入代谢物与实验数据,接着基于汇总 QC 进行数据清洗。随后借助主成分分析可视化检查数据质量,再开展两类单变量统计。之后运用偏最小二乘判别分析(PLS - DA)实施多变量分析,此过程涵盖模型优化(对比 R2 与 Q2)、置换测试及明确模型预测指标、确定特征重要性、对模型预测数据进行可视化。最终将统计表格导出至 Excel 表格,完整呈现从数据导入到分析结果输出的全过程。

专注生信领域 2875

初涉AJAX(一)

实现一个最基本的AJAX异步调用,其步骤如下: 1、创建XMLHttpRequest对象; 2、创建一个新的http请求,并指定请求的方法,URL以及验证信息; 3、设置http请求状态变化的函数; 4、发送http请求; 5、获取异步调用返回的数据; 6、利用JS和DOM实现局部更新小例子一枚: 获取员工信息,创建新员工信息 html php代码略; js部分://获取员工信息

打着雨伞看流星 360

华为OD机试 - 幸运数字(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题。

学Java,找哪吒 3776

MAVLink协议详解

MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。 MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol   用户手册:ht

程序猿老樊的博客 7704

《ASP.NET AJAX程序设计 第I卷》的心路历程

4/4更新:赠书活动已经开始,请到这里了解详情。   06年3月份,我终于鼓足勇气,在博客园开始了自己的Blog生涯。当时恰逢微软公司的ASP.NET AJAX(开发代号:Atlas)处于CTP阶段,加之业界对Ajax的热情高涨,于是我开始记下一些ASP.NET AJAX在我实际开发/使用中的心得体会。谁知无心栽柳间却得到了众多朋友的关注和支持,于是Blog中的ASP.NET AJAX相关内容...

weixin_33887443的博客 97

动态SLAM中的YOLO与ORB-SLAM3融合:实时目标检测与动态点云滤除实战

本文介绍了如何结合YOLOv5目标检测与ORB-SLAM3视觉SLAM系统,实现动态环境下的目标检测与视觉SLAM任务。文章详细阐述了从源码下载、依赖安装(包括libtorch配置)、编译运行步骤(包括ROS环境和非ROS环境下的编译方法),到RGBD-TUM数据集准备与关联处理的全流程。同时针对常见错误提供了解决方案,如libtorch路径配置、ROS环境冲突等。最后展示了系统运行方法,并探讨了未来可能的优化方向,包括增强目标检测能力和改进动态环境下的地图构建。该集成系统为机器人智能导航和环境感知提供了有

LXY_LOVE36的博客 237

ajax files 空,javascript - $_POST and $_FILES empty after AJAX file upload - Stack Overflow

I am new to web development, and the latest problem I have been having is ajax file uploading...Right now I have two HTML input fields; a file input and a button.After the button is clicked I then cal...

weixin_39623805的博客 415

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

初涉json

今天在和同学讨论时了解到ajax的局部刷新功能后就很想知道它是怎么实现。局部刷新在网页中是很重要的,在以前的项目中我遇到了这样的问题:一个搜索界面,用ajax从后台取到数据后不能立马在网页中显示,我就在ajax的回调方法中添加了整个页面的刷新方法,但这样对用户体验来说是非常不好的。所以我非常想了解局部刷新这个技术。但是,在今天却还是没有实现这个功能。但是也并非一无所获,其过程中,我了解到了json

Jia_Heng_he的博客 334

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Ztree之初涉——简单Ztree的实现

Ztree可以去官网去下载相应的版本和API,我这里就简单的介绍下它的实现以及因为Ztree的小例子印发的Js问题,稍后我会在博客中写JS的异步问题, 我这里用的是MVC4.0,好了正文开始,上代码 namespace ZtreeDemo.Controllers { public class HomeController : Controller {

萌萌的It人 www.itmmd.com 3443

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

小白初涉跨域问题记录

跨域问题 前言 这次项目是我第一次体验多人合作开发项目,以往做个人练手项目是没有跨域问题的,自然也没有解决此问题的经验,一切还得靠百度搜索他人分享的解决方法,不断采坑,补坑,再继续走,继续踩。 第一次报跨域错误 前前后后报了好多次跨域错误,每次解决完之后继续完善项目,修改代码,再次跑项目的时候跨域问题就又报出来了。 第一次暴露这个问题是我们后台写完接口,报接口文档给前端,前端一调用接口就被拦截了,报了跨域的错。于是我去网上找解决方法,找到了简单的解决跨域问题;这篇博客的解决方法简单有效,还简单介绍了跨

weixin_47192473的博客 380

ajax对全局变量操作,ajax全局变量赋值的坑

Abstact这些天开始慢慢深入接触到一些 web 前端的知识,当然不只是前端网站的布局设计上面,主要还是在处理一些逻辑上的问题。也就是实验室现在有了个前端脚本混淆的工程,那么写前端代码自然是必不可少的。特别是在前后端数据交互方面的代码编写。这篇文章主要是记录一下对 Ajax 的全局变量赋值问题的解决。BackgroundWhatajax是 2004 年才应用于现在的 web 前后端数据交互技术,...

weixin_29672983的博客 528

ajax简单运用

这篇文章写正在初涉ajax的时候,对于ajax理解还不能说太细致。 首先先知道ajax的作用。在数据交流的时候,大家可以理解为你在客户端上面,向服务器发送数据获取请求,然后服务器筛选你想要的数据并发送给你。而这个过程呢,在以往的数据交互情况下,只能完成了当前的一个请求才能进行下一个数据请求。试想一下如果当前这个请求所需要的操作时间太长的话,就会非常影响下一个请求的操作,所以,ajax就被引用出来

weixin_37252943的博客 276

一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码

本文是一篇介绍AJAX的入门级的范例式文章,希望能对初涉AJAX的朋友能有所帮助 ... ...首先,让我们来看看Web浏览器端的JavaScript脚本代码,如下:function Request() { if(window.XMLHttpRequest) { var xmlObj = new XMLHttpRequest(); } else { var M

johncools的博客 1239

JSON(一)初涉

欢迎进入本次“深挖JSON之旅”,下文将从以下几个方面去理解JSON:(1)首先是对“JSON是一种轻量的数据交换格式”的理解;(2)然后来看经常被混为一谈的JSON和JS对象的区别;(3)最后我们再来看JS中这几个JSON相关函数具体的执行细节。希望全文能让如之前的我一样对JSON一知半解的亲能说清楚JSON是什么,也能熟练运用JSON,不看控制台就知道JS对象序列化成JSON字符串后输出是啥。...

wzj_110的博客 458

JS(六)jQuery初涉

一、jQuery    出发点:它可以用最少的代码(简化开发者使用JavaScript),完成更多复杂而困难的功能。    特点:是一个JavaScript的封装库(轻量级的框架),它通过封装原生的JavaScript函数得到一整套定义好的方法。jQuery已经集成了JavaScript、 CSS、 DOM和Ajax于一体的强大功能。二、jQuery 的功能和优势      主要功能有以下几点: ...

wzj_110的博客 331

jquery初涉,First Blood

jquery可以帮助干的事情有: 遍历HTML文档 操作DOM 处理事件 执行动画 开发Ajax操作 优点就不在这儿扯蛋了~ 1、jquery环境配置 jquery不需要安装,只需要将下载的jquery.js放在网站的某个公共位置,在页面上使用时,只需要在相关的HTML文档中引入该库文件的位置即可。 2、在页面中引入jquery 先来定个小目标,看看在页面中怎么使用jquery。 First ...

weixin_33875839的博客 61
上一篇: commons-email发送邮件
下一篇: Ruby简单读取文件
refactaar
博客等级 码龄17年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值