当前位置: 首页 > news >正文

荥阳网站建设荥阳竞价代运营公司哪家好

荥阳网站建设荥阳,竞价代运营公司哪家好,网站建设咨询问卷,金融企业网站制作Ajax技术 1、简介 AJAX Asynchronous JavaScript and XML (异步的JavaScript和XML)AJAX是-种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在2005…

Ajax技术

1、简介

  • AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML)
  • AJAX是-种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
  • Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。
  • 在2005年, Google通过其Google Suggest使AJAX变得流行起来。Google Suggest能够
    自动帮你完成搜索单词。
  • Google Suggest使用AJAX创造出动态性极强的web界面:当您在谷歌的搜索框输入关键字
    时,JavaScript 会把这些字符发送到服务器,然后服务器会返回一个搜索建议的列表。
  • 就和国内百度的搜索框一样:
  • 传统的网页(即不用ajax技术的网页),想要更新内容或者提交一个表单,都需要重新加载整个网
    页。
  • 使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新。
  • 使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。.

2、伪造Ajax

我们可以使用前端的一个标签来伪造-个ajax的样子。iframe标签

  1. 新建一个module : sspringmvc-06-ajax,导入web支持!
  2. 编写一个ajax-frame.html使用iframe 测试,感受下效果
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<script>function Loadpage() {var targeturl = document.getElementById('url').value;console.log(targeturl);document.getElementById("iframePosition").src = targeturl;}
</script><body><div ><p>请输入要加载的地址: <span id="currentTime"></span></p><p><input id="url" type="text" value="https://www.baidu.com/"/><input type="button" value="提交" onclick="Loadpage()"></p>
</div>
<div><h3>加载页面位置: </h3><iframe id="iframePosition" style= "width: 100%;height: 500px;"></iframe>
</div>
</body>
</html>

3.使用IDEA开浏览器测试一下!

利用AJAX可以做:

  • 注册时,输入用户名自动检测用户是否已经存在。
  • 登陆时,提示用户名密码错误
  • 删除数据行时,将行ID发送到后台,后台在数据库中删除,数据库删除成功后,在页面DOM中将.
    数据行也删除。
  • …等等

3、jQuery.ajax

  • 纯JS原生实现Ajax我们不去讲解这里,直接使用jquery提供的,方便学习和使用,避免重复造轮
    子,有兴趣的同学可以去了解下JS原生XMLHttpRequest !

  • Ajax的核心是XMLHttpRequest对象(XHR)。XHR为向服务器发送请求和解析服务器响应提供了
    接口。能够以异步方式从服务器获取新数据。

  • jQuery提供多个与AJAX有关的方法。

  • 通过jQuery AJAX方法,您能够使用HTTP Get和HTTP Post从远程服务器上请求文本、

    HTML、XML或JSON-同时您能够把这些外部数据直接载入网页的被选元素中。

  • jQuery不是生产者,而是大自然搬运工。

  • jQuery Ajax本质就是XMLHttp Request,对他进行了封装,方便调用!

jQuery.ajax(...)部分参数:url:请求地址type:请求方式,GETPOST1.9.0之后用method)headers:请求头data:要发送的数据contentType:即将发送信息至服务器的内容编码类型(默认: "application/x-www-form-urlencoded; charset=UTF-8")async:是否异步timeout:设置请求超时时间(毫秒)beforeSend:发送请求前执行的函数(全局)complete:完成之后执行的回调函数(全局)success:成功之后执行的回调函数(全局)error:失败之后执行的回调函数(全局)accepts:通过请求头发送给服务器,告诉服务器当前客户端可接受的数据类型dataType:将服务器端返回的数据转换成指定类型"xml": 将服务器端返回的内容转换成xml格式"text": 将服务器端返回的内容转换成普通文本格式"html": 将服务器端返回的内容转换成普通文本格式,在插入DOM中时,如果包含JavaScript标签,则会尝试去执行。"script": 尝试将返回值当作JavaScript去执行,然后再将服务器端返回的内容转换成普通文本格式"json": 将服务器端返回的内容转换成相应的JavaScript对象"jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数,

我们来个简单的测试,使用最原始的HttpServletResponse处理,. 最简单,最通用

  1. 配置web.xml和springmvc的配置文件, 复制上面案例的即可【记得静态资源过滤和注解驱动配
    置上】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>
<!--静态资源过滤-->
<mvc:default-servlet-handler/>
@RequestMapping("/a1")
public void a1(String name, HttpServletResponse response) throws IOException {System.out.println("a1:param===>"+name);if ("kuangshen".equals(name)){response.getWriter().print("true");}else {response.getWriter().print("false");}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.0.js"></script><script>function a(){$.post({url:"${pageContext.request.contextPath}/a1",data:{"name":$("#username").val()},success:function (data) {alert(data);}})}</script><body><%--失去一个焦点的时候,发起一个请求(携带信息)到后台--%>用户名:<input type="text" id="username" οnclick="a()"></body>
</html>

jquery-3.5.0.js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vqlLXwU-1589168843992)(Ajax技术.assets/image-20200415211331409.png)]

4、Ajax验证用户名体验

功能:失去焦点去判断用户名密码是否正确
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-POGmRqcs-1589168885439)(Ajax技术.assets/image-20200416173644123.png)]

jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Login</title>
</head>
<script src="statics/js/jquery-3.5.0.js"></script>
<script>function a1() {$.post({url:"${pageContext.request.contextPath}/a3",data:{"name":$("#name").val()},success:function (data) {console.log(data);if (data==="ok"){$("#userInfo").css("color","green").html(data);}else {$("#userInfo").css("color","red").html(data);}}});}function b1() {$.post("${pageContext.request.contextPath}/a3",{"pwd":$("#pwd").val()},function (data) {console.log(data);if (data==="ok"){$("#pwdInfo").css("color","green").html(data);}else {$("#pwdInfo").css("color","red").html(data);}})}
</script><body>
<p>用户名: <input type="text" id="name" οnblur="a1()"><span id="userInfo"></span>
</p>
<p>密  码 : <input type= "text" id="pwd" οnblur="b1()"><span id="pwdInfo"></span>
</p></body>
</html>

Controller:

@RestController
public class AjaxController {@RequestMapping("/a3")
public String a3(String name, String pwd){String msg = "";if (name!=null){//admin应该从数据库中查到if ("admin".equals(name)){msg = "ok";}else if(name==""){msg = "用户名不能为空";}else {msg = "用户名已存在";}}if (pwd!=null){//pwd应该从数据库中查到if ("admin".equals(pwd)){msg = "ok";}else if (pwd==""){msg = "密码不能为空";}else{msg = "密码有误";}}return msg;
}
}

注意:要处理一个乱码!

applicationContext.xml

<!--JSON乱码问题--><mvc:annotation-driven><mvc:message-converters register-defaults="true"><bean class="org.springframework.http.converter.StringHttpMessageConverter"><constructor-arg value="UTF-8"/></bean><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"><property name="objectMapper"><bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"><property name="failOnEmptyBeans" value="false"/></bean></property></bean></mvc:message-converters>
</mvc:annotation-driven>

5、获取baidu接口Demo

<!DOCTYPE HTML>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>JSONP百度搜索</title><style>#q{width: 500px;height: 30px;border:1px solid #ddd;line-height: 30px;display: block;margin: 0 auto;padding: 0 10px;font-size: 14px;}#ul{width: 520px;list-style: none;margin: 0 auto;padding: 0;border:1px solid #ddd;margin-top: -1px;display: none;}#ul li{line-height: 30px;padding: 0 10px;}#ul li:hover{background-color: #f60;color: #fff;}</style><script>// 2.步骤二// 定义demo函数 (分析接口、数据)function demo(data){var Ul = document.getElementById('ul');var html = '';// 如果搜索数据存在 把内容添加进去if (data.s.length) {// 隐藏掉的ul显示出来Ul.style.display = 'block';// 搜索到的数据循环追加到li里for(var i = 0;i<data.s.length;i++){html += '<li>'+data.s[i]+'</li>';}// 循环的li写入ulUl.innerHTML = html;}}// 1.步骤一window.onload = function(){// 获取输入框和ulvar Q = document.getElementById('q');var Ul = document.getElementById('ul');// 事件鼠标抬起时候Q.onkeyup = function(){// 如果输入框不等于空if (this.value != '') {// ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆JSONPz重点☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆// 创建标签var script = document.createElement('script');//给定要跨域的地址 赋值给src//这里是要请求的跨域的地址 我写的是百度搜索的跨域地址script.src ='https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+this.value+'&cb=demo';// 将组合好的带src的script标签追加到body里document.body.appendChild(script);}}}</script>
</head><body>
<input type="text" id="q" />
<ul id="ul"></ul>
</body>
</html>
       //这里是要请求的跨域的地址 我写的是百度搜索的跨域地址script.src ='https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+this.value+'&cb=demo';// 将组合好的带src的script标签追加到body里document.body.appendChild(script);}}}
    ```
    http://www.lbrq.cn/news/2535103.html

    相关文章:

  • 建设工程信息发布网站百度指数上多少就算热词
  • 达川网站制作网络舆情案例分析
  • 居家网络架构seo搜索引擎优化入门
  • 标签系统做的好的网站交换链接是什么
  • 火花机 东莞网站建设久久seo正规吗
  • 网站建设一般需经历确立百度关键词竞价
  • 学平面设计要多少钱seo和sem哪个工资高
  • 天津商城网站制作百度账户托管
  • 网站制作前期所需要准备成都网络营销品牌代理机构
  • 网站平台搭建包括哪些长沙seo优化推广
  • 重庆网站建设招聘信息东莞seo优化推广
  • 公司做网站一般用什么域名百度搜索引擎推广收费标准
  • 深圳网站建设科技有限公司站长查询域名
  • 大连城市建设管理局网站营销背景包括哪些内容
  • 互力互通网站建设百度一下百度首页登录
  • 奉贤网站建设专家网络营销网站分析
  • 做网站搭建的公司网络推广合同
  • 网站建设公司 佛山互联网营销工具有哪些
  • 网站 风格百度教育会员
  • 中国营销型网站刷钻业务推广网站
  • b2b网站的功能产品策划方案怎么做
  • 爱网站黄害羞草品牌营销策划机构
  • 国外做内容网站南宁百度seo排名
  • 番禺人才市场档案中心谷歌外贸seo
  • 优质的做pc端网站百度联盟怎么加入赚钱
  • 手机网站建设沈阳百度平台推广
  • 优购物官方网站直播seo排名快速优化
  • 鸡西网站建设长沙靠谱关键词优化服务
  • 做设计到哪个网站赚钱口碑营销的名词解释
  • 织梦云建站系统在线seo工具
  • 学以致用——用Docker搭建ThinkPHP开发环境
  • SpringBoot+SpringAI打造智能对话机器人
  • docker 安装elasticsearch
  • 借助 Wisdom SSH 的 AI 助手构建 Linux 开发环境
  • 新手向:DeepSeek 部署中的常见问题及解决方案
  • 【音视频】WebRTC 开发环境搭建-Web端