04-Ajax

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML);
AJAX 不是新的编程语言,而是一种使用现有标准的新方法;
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下;

一、Ajax

1.1、Ajax所包含的技术

 1.使用CSS和XHTML来表示。
 2.使用DOM模型来交互和动态显示。
 3.使用XMLHttpRequest来和服务器进行异步通信。
 4.使用javascript来绑定和调用。

AJAX 的核心是 XMLHttpRequest 对象。
不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。
IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为XMLHttpRequest 的 JavaScript 内建对象。

1.2、XMLHttpRequest常用属性

在这里插入图片描述

1.3、XMLHttpRequest常用方法

在这里插入图片描述

1.4、Ajax编程步骤

 1. 创建XMLHttpRequest对象
 2. 设置请求方式
 3. 调用回调函数
 4. 发送请求

二、jQuery的ajax操作

2.1、ajax()方法

可以通过发送 HTTP请求加载远程数据,是 jQuery 最底层的 Ajax 实现,具有较高灵活性。
.ajax([settings]);//参数是 .ajax()方法的参数列表,用于配置 Ajax 请求的键值对集合;

$.ajax({
	url:请求地址
	type:"get | post | put | delete " 默认是get,
	data:请求参数 {"id":"123","pwd":"123456"},
	dataType:请求数据类型"html | text | json | xml | script | jsonp ",
	success:function(data,dataTextStatus,jqxhr){ },//请求成功时
	error:function(jqxhr,textStatus,error)//请求失败时
})

2.2、get()方法

通过远程 HTTP GET 请求载入信息。
这是一个简单的 GET 请求功能以取代复杂 $.ajax

$.get(url,data,function(result) {
	//省略将服务器返回的数据显示到页面的代码
});

2.3、post()方法

通过远程 HTTP GET 请求载入信息。

$.post(url,data,function(result) {
	//省略将服务器返回的数据显示到页面的代码
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是基于距离的简单碰撞检测的示例代码: ```html <!DOCTYPE html> <html> <head> <title>基于距离的简单碰撞检测</title> <style> canvas { border: 1px solid black; } </style> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> <script> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // 定义圆形 var circle1 = { x: 100, y: 100, radius: 50, color: "blue" }; var circle2 = { x: 300, y: 300, radius: 75, color: "red" }; function drawCircle(circle) { ctx.beginPath(); ctx.arc(circle.x, circle.y, circle.radius, 0, 2 * Math.PI); ctx.fillStyle = circle.color; ctx.fill(); } function detectCollisions(circle1, circle2) { // 计算两个圆心之间的距离 var distance = Math.sqrt(Math.pow(circle2.x - circle1.x, 2) + Math.pow(circle2.y - circle1.y, 2)); // 如果距离小于等于两个圆的半径之和,则发生碰撞 if (distance <= circle1.radius + circle2.radius) { return true; } else { return false; } } function update() { // 清除画布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制圆形 drawCircle(circle1); drawCircle(circle2); // 检测碰撞 if (detectCollisions(circle1, circle2)) { ctx.fillText("发生碰撞!", 200, 50); } // 请求动画帧 requestAnimationFrame(update); } // 启动动画 requestAnimationFrame(update); </script> </body> </html> ``` 效果如下: ![基于距离的简单碰撞检测示例效果图](https://cdn.jsdelivr.net/gh/YunboCheng/pictures/images/20211214162505.png) ### 回答2: 代码如下: ```html <!DOCTYPE html> <html> <head> <title>基于距离的简单碰撞检测</title> <style> #box1 { width: 50px; height: 50px; background-color: red; position: absolute; top: 100px; left: 100px; } #box2 { width: 50px; height: 50px; background-color: blue; position: absolute; top: 150px; left: 150px; } </style> </head> <body> <div id="box1"></div> <div id="box2"></div> <script> var box1 = document.getElementById('box1'); var box2 = document.getElementById('box2'); function checkCollision() { var box1Rect = box1.getBoundingClientRect(); var box2Rect = box2.getBoundingClientRect(); var box1CenterX = box1Rect.left + box1Rect.width / 2; var box1CenterY = box1Rect.top + box1Rect.height / 2; var box2CenterX = box2Rect.left + box2Rect.width / 2; var box2CenterY = box2Rect.top + box2Rect.height / 2; var distance = Math.sqrt(Math.pow(box2CenterX - box1CenterX, 2) + Math.pow(box2CenterY - box1CenterY, 2)); if (distance < (box1Rect.width / 2 + box2Rect.width / 2)) { box1.style.backgroundColor = 'green'; box2.style.backgroundColor = 'yellow'; } else { box1.style.backgroundColor = 'red'; box2.style.backgroundColor = 'blue'; } } setInterval(checkCollision, 100); </script> </body> </html> ``` 效果:在页面中创建了两个矩形框,一个为红色,一个为蓝色。当两个矩形框位置重叠时,红色的框变为绿色,蓝色的框变为黄色;当两个矩形框位置不重叠时,颜色恢复为原来的颜色。通过计算两个矩形框中心点的距离,当距离小于两个矩形框宽度之和的一半时,认为发生了碰撞。使用setInterval函数每100毫秒调用一次检测碰撞函数。 ### 回答3: 要实现一个基于距离的简单碰撞检测,可以使用04-distance-1.html中的代码。以下是一个可能的实现方式: HTML代码: ```html <!DOCTYPE html> <html> <head> <title>基于距离的碰撞检测</title> <style> #box1, #box2 { width: 50px; height: 50px; background-color: blue; position: absolute; } </style> </head> <body> <div id="box1"></div> <div id="box2"></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(document).ready(function(){ var box1 = $("#box1"); var box2 = $("#box2"); $(document).mousemove(function(event){ // 更box1的位置 box1.css({ left: event.pageX - box1.width() / 2, top: event.pageY - box1.height() / 2 }); // 判断box1和box2是否碰撞 var distanceX = Math.abs(box1.offset().left - box2.offset().left); var distanceY = Math.abs(box1.offset().top - box2.offset().top); var distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY); if (distance <= box1.width() / 2 + box2.width() / 2) { box2.css("background-color", "red"); } else { box2.css("background-color", "blue"); } }); }); </script> </body> </html> ``` 上述代码中,我们使用两个`div`元素分别表示box1和box2,它们的样式通过CSS进行设置。利用jQuery库,我们可以在文档准备就绪时获取box1和box2的jQuery对象并绑定鼠标移动事件。 在鼠标移动事件处理函数中,我们通过`event.pageX`和`event.pageY`获取鼠标坐标,并将box1定位到鼠标位置。然后,我们计算出box1和box2中心之间的距离,并与两个盒子的半径之和进行比较。如果距离小于等于半径之和,表示box1和box2发生了碰撞,我们将box2的背景颜色设置为红色,否则设置为蓝色。 使用这段代码,当鼠标移动时,box1会跟随鼠标移动,同时检测与box2的碰撞情况并改变box2的背景颜色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值