ajax新手入门教程-适合初学者
初学者入门教程,来源于网络
AJAX 简介
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术。类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。
AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。
AJAX 是一种独立于 Web 服务器软件的浏览器技术。AJAX 基于下列 Web 标准:
JavaScript
XML
HTML
CSS
在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。
1. AJAX 使用 Http 请求
在传统的 JavaScript 编程中,假如您希望从服务器上的文件或数据库中得到任何的信息,或者向服务器发送信息的话,就必须利用一个 HTML 表单向服务器 GET 或 POST 数据。而用户则需要单击“提交”按钮来发送/获取信息,等待服务器的响应,然后一张新的页面会加载结果。由于每当用户提交输入后服务器都会返回一张新的页面,传统的 web 应用程序变得运行缓慢,且越来越不友好。通过利用 AJAX,您的 JavaScript 会通过 JavaScript
的 XMLHttpRequest 对象,直接与服务器来通信。通过使用 HTTP 请求,web 页可向服务器进行请求,并得到来自服务器的响应,而不加载页面。用户可以停留在同一个页面,他或她不会注意到脚本在后台请求过页面,或向服务器发送过数据。
XMLHttpRequest 对象:通过使用 XMLHttpRequest 对象,web 开发者可以做到在页面已加载后从服务器更新页面!
您的第一个 AJAX 应用程序:为了让您理解 AJAX 的工作原理,我们将创建一个小型的 AJAX 应用程序。
首先,我们需要一个带有两个文本框的 HTML 表单:用户名和时间。用户名文本框由用户填写,而时间文本框使用 AJAX 进行填写。
此 HTML 文件名为 "testAjax.htm"(请注意这个 HTML 表单没有提交按钮!):
2. AJAX - 浏览器支持
AJAX 的要点是 XMLHttpRequest 对象。不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 JavaScript 内建对象。如需针对不同的浏览器来创建此对象,我们要使用一条 "try and catch" 语句。您可以在我们的 JavaScript 教程中阅读更多有关 try 和
catch 语句 的内容。
让我们用这段创建 XMLHttpRequest 对象的 JavaScript 来更新一下我们的
"testAjax.htm" 文件:
用户:
时间:
例子解释:
首先声明一个保存 XMLHttpRequest 对象的 xmlHttp 变量。
然后使用 XMLHttp=new XMLHttpRequest() 来创建此对象。这条语句针对
Firefox、Opera 以及 Safari 浏览器。假如失败,则尝试针对 Internet Explorer 6.0+
的 xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"),假如也不成功,则尝试针对
Internet Explorer 5.5+ 的 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")。
假如这三种方法都不起作用,那么这个用户所使用的浏览器已经太过时了,他或她会看到一个声明此浏览器不支持 AJAX 的提示。
注释:上面这些浏览器定制的代码很长,也很复杂。不过,每当您希望创建 XMLHttpRequest 对象时,这些代码就能派上用场,因此您可以在任何需要使用的时间拷贝粘贴这些代码。上面这些代码兼容所有的主流浏览器:Internet Explorer、Opera、Firefox 以及 Safari。
3. AJAX - XMLHttpRequest 对象
在向服务器发送数据之前,我们有必要解释一下 XMLHttpRequest 对象的三个重要的属性。
onreadystatechange 属性
onreadystatechange 属性存有处理服务器响应的函数。下面的代码定义一个空的函数,可同时对 onreadystatechange 属性进行设置:
xmlHttp.onreadystatechange=function()
{
// 我们需要在这里写一些代码
}
readyState 属性
readyState 属性存有服务器响应的状态信息。每当 readyState 改变时,onreadystatechange 函数就会被执行。
这是 readyState 属性可能的值:
状态 描述
0 请求未初始化(在调用 open() 之前)
1 请求已提出(调用 send() 之前)
2 请求已发送(这里通常可以从响应得到内容头部)
3 请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应)
4 请求已完成(可以访问服务器响应并使用它)
我们要向这个 onreadystatechange 函数添加一条 If 语句,来测试我们的响应是否已完成(意味着可获得数据):
xmlHttp.onreadystatechange=function()
{ if(xmlHttp.readyState==4)
{
// 从服务器的response获得数据
}
}
responseText 属性
可以通过 responseText 属性来取回由服务器返回的数据。
在我们的代码中,我们将把时间文本框的值设置为等于 responseText:
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.myForm.time.value=xmlHttp.responseText;
}
}
4. AJAX - 请求服务器
要想把请求发送到服务器,我们就需要使用 open() 方法和 send() 方法。
open() 方法需要三个参数。第一个参数定义发送请求所使用的方法(GET 还是 POST)。第二个参数规定服务器端脚本的 URL。第三个参数规定应当对请求进行异步地处理。
send() 方法可将请求送往服务器。如果我们假设 HTML 文件和 test.txt 文件位于相同的目录,那么代码是这样的:
xmlhttp.open("GET", "test.txt",true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
alert(xmlhttp.responseText)
}
}
xmlhttp.send(null)
运行结果:
发出 Ajax 请求
function callServer() {
// Get the city and state from the web form
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
// Only go on if there are values for both fields
if ((city == null) || (city == "")) return;
if ((state == null) || (state == "")) return;
// Build the URL to connect to
var url = "/scripts/getZipCode.php?city=" + escape(city) +
"&state=" + escape(state);
// Open a connection to the server
xmlHttp.open("GET", url, true);
// Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = updatePage;
// Send the request
xmlHttp.send(null);
}
其中大部分代码意义都很明确。开始的代码使用基本 JavaScript 代码获取几个表单字段的值。然后设置一个 PHP 脚本作为链接的目标。要注意脚本 URL 的指定方式,city 和
state(来自表单)使用简单的 GET 参数附加在 URL 之后。
然后打开一个连接,这是您第一次看到使用 XMLHttpRequest。其中指定了连接方法(GET)和要连接的 URL。最后一个参数如果设为 true,那么将请求一个异步连接(这就是 Ajax 的由来)。如果使用 false,那么代码发出请求后将等待服务器返回的响应。如果设为 true,当服务器在后台处理请求的时候用户仍然可以使用表单(甚至调用其他 JavaScript
方法)。
xmlHttp(要记住,这是 XMLHttpRequest 对象实例)的 onreadystatechange 属性可以告诉服务器在运行完成 后(可能要用五分钟或者五个小时)做什么。因为代码没有等待服务器,必须让服务器知道怎么做以便您能作出响应。在这个示例中,如果服务器处理完了请求,一个特殊的名为 updatePage() 的方法将被触发。
最后,使用值 null 调用 send()。因为已经在请求 URL 中添加了要发送给服务器的数
JAVA AJAX教程第一章-初始AJAX
既然是认识AJAX,理论和实践相结合,这样让自己学的更快,理解更深入,我
分一下几点:1、认识传统的同步交互方式和AJAX解决方案
2、AJAX使用到的技术
3、实例体验AJAX
一、同步交互方式和AJAX解决方案
传统的WEB应用是同步交互的方式,这种同步交互方式的处理过程如下图
什么是同步交互方式:
首先,用户向HTTP服务器提交一个处理请求。接着,服务器端接收到请求后,
按照预先编写好的程序中的业务逻辑进行处理,比如和数据库服务器进行数据信
息交换。最后,服务器对请求进行响应,将结果返回给客户端,返回一个HTML
在浏览器中显示,通常会有CSS样式丰富页面的显示效果。
同步交互的不足之处,会给用户一种不连贯的体验,当服务器处理请求时,用户
只能等待状态,页面中的显示内容只能是空白。
AJAX解决方案
AJAX采用的异步交互的处理方式,很好的解决不连贯的用户体验,处理过程如
图:
二、AJAX使用的技术1、JavaScript脚本
2、XHTML和CSS
3、DOM
4、XML和XSTL
5、XMLHTTPRequest
三、实例体验AJAX
首先,布置好开发环境:JDK1.4以上,我使用1.6
Eclipse3.1以上,我使用3.4
Tomcat5.0以上,我使用6.0
MySql4以上,我使用5.0
如果你没有十足的把握请搭建和我一样的环境。
实例1:
我先做一个传统同步交互的实例,然后同AJAX的异步交互进行对比。
这里还要介绍下J2EE中经常提到的MVC模式:MVC模式,即模型—视图—控制器模式,核心是代码分为相对独立的3个组成
部分,其功能如下:模型(Model),业务逻辑层。实现业务逻辑、状态管理的功能。
视图(View),表示层。即实现与用户交互的界面,通常实现数据的输入和输
出功能。
控制器(Control),控制层。起到控制整个业务流程的作用,实现View和Model
部分的协同工作。
在Model2中,采用Servlet作为控制器,负责接收客户端Web浏览器发送来的
ajax请求添加自定义header参数代码
ajax请求添加⾃定义header参数代码
我就废话不多说了,⼤家还是直接看代码吧~
$.ajax({
type: "post",
url:"http://127.0.0.1:4564/bsky-app/template/testPost",
contentType: "application/json;charset=utf-8",
data :JSON.stringify({"bodyName":"sdfsdf","date":"2017-11-28 07:34:01","price": 10.5,"tbId": 1}),
dataType: "json",
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxOD.....");
},
success: function (data) {
alert(data);
},error:function(error){
console.log(error);
}
});
beforeSend: function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("token", "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxOD.....");
},
其中,token是服务端⾃定义的header参数
补充知识:ajax请求携带cookie和⾃定义请求头header(跨域和同域)
ajax请求携带cookie、⾃定义header总结:
错误:
1.ajax请求时是不会⾃动带上cookie的,要是想让他带上的话,必须设置withCredential为true。
正确:
1.ajax同域请求下,ajax会⾃动带上同源的cookie;
toajax的用法
第 1 页 共 2 页 toajax的用法
(原创实用版)
目录
1.toajax 的含义和作用
2.toajax 的用法示例
3.toajax 的使用注意事项
正文
【1.toajax 的含义和作用】
toajax 是一个 JavaScript 函数,用于在后台异步地发送请求并处理响应。它可以在不重新加载页面的情况下,与服务器交换数据并更新网页内容。toajax 的使用可以提高网页的交互性和用户体验。
【2.toajax 的用法示例】
以下是一个 toajax 的简单用法示例:
```javascript
// 创建一个新的 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 设置请求方法和请求地址
xhr.open("GET", "your_url_here", true);
// 设置响应类型
xhr.responseType = "json";
// 添加事件监听器来处理响应
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) { 第 2 页 共 2 页 // 处理响应数据
console.log(xhr.response);
}
};
// 发送请求
xhr.send();
```
【3.toajax 的使用注意事项】
在使用 toajax 时,需要注意以下几点:
1.浏览器兼容性:toajax 在较老版本的浏览器中可能不受支持,需要使用 polyfill 或者 BSD 的 XMLHttpRequest 库来解决兼容性问题。
2.请求方式:toajax 支持 GET、POST 等 HTTP 请求方式,根据实际情况选择合适的请求方式。
3.响应处理:根据服务器返回的数据类型,设置合适的响应类型,并在事件监听器中处理响应数据。
axios和ajax的 用法
axios和ajax的 用法
Axios和Ajax是我们在前端开发中常使用的两种网络请求工具,这篇文章将从基础概念、用法、优缺点等方面来详细介绍它们。
一、基础概念
1.1 Axios
Axios是一个基于promise的HTTP客户端,用于浏览器和Node.js平台中发送异步HTTP请求。 Axios支持浏览器和Node.js环境,可以在项目中方便地封装HTTP请求,相较于传统的Ajax和Fetch,Axios提供了更多强大的功能。
1.2 Ajax
Ajax全称Asynchronous JavaScript and XML,即异步JavaScript和XML技术。它是一种创建交互式网站的Web开发技术,可以在不刷新网页的情况下对网页进行局部更新。Ajax技术通过XmlHttpRequest对象实现异步请求数据。
二、用法
2.1 Axios
Axios的基础使用非常简单,我们先在项目中引入Axios:
``` import axios from 'axios' ``` Axios支持链式调用,比如:
``` axios.get('/user?id=1') .then(function
(response)
{ console.log(response); }) .catch(function
(error) { console.log(error); }); ```
以上代码会向服务器发送一个GET请求,并将响应数据打印到控制台。
Axios除了get请求,还可以发送post请求:
``` axios.post('/user', { firstName:
'John', lastName: 'Doe' }) .then(function
(response)
{ console.log(response); }) .catch(function
前端学习路线图--Node.js与AJAX
视频库: 资料领取:QQ 1467400757 前端学习路线图--Node.js与AJAX
黑马程序员的前端学习路线图大纲中第三阶段的学习是Node.js与AJAX的学习:主要介绍了前端学习路线图的Node.js与AJAX的学习目标,前端学习路线图的Node.js与AJAX的市场价值,前端学习路线图的Node.js与AJAX的重点知识。前端学习路线图中的Node.js与AJAX学习视频可以在黑马程序员视频库中找到:
前端学习路线图中Node.js与AJAX的技术要点:AJAX编程;git;ES6;Node.js基础;服务端开发(Node.js);MySQL;Express。
视频库: 资料领取:QQ 1467400757
AJAX编程
1、AJAX的作用
2、原生AJAX
3、同步与异步
4、http协议
5、AJAX的封装
6、jQuery的AJAX
7、缓存问题及解决方案
8、跨域请求及解决方案
9、前端模板引擎 视频库: 资料领取:QQ 1467400757 git
1、git历史
2、git与svn
3、git基本使用
4、git分支
5、git远程仓库
6、git冲突及解决方案
黑马程序员视频库网址:(海量热门编程视频、资料免费学习)
学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 1679806262
ES6
1、es6简介
2、新增语法
3、内置对象扩展
4、Promise
5、Async函数
6、解构
7.展开运算
Node.js基础 视频库: 资料领取:QQ 1467400757 1、node.js环境安装
2、如何用node.js运行代码
3、Commonjs
4、模块化
5、模块与包
6、NPM
7、CNPM和Yarn
8、核心模块使用
9、第三方模块使用
10、RESTFulAPI
黑马程序员视频库网址:(海量热门编程视频、资料免费学习)
ajaxsubmit参数
ajaxsubmit参数
AjaxSubmit是一个jQuery插件,用于通过Ajax提交和处理表单数据。它提供了一种简单和方便的方式来处理表单的提交和响应,而无需刷新整个页面。
AjaxSubmit的主要参数包括:
1. `url`:指定表单数据提交的目标URL。可以是相对路径或绝对路径。
2. `type`:指定请求的类型,可以是"GET"或"POST"。默认为"POST"。
3. `beforeSubmit`:在提交之前执行的回调函数。它接收一个表单数据数组作为参数,可以在此函数中对数据进行处理或验证。如果该函数返回false,则阻止表单提交。
4. `success`:提交成功后执行的回调函数。该函数接收三个参数:返回的数据,文本状态,以及XMLHttpRequest对象。可以在此函数中处理返回的数据或执行相应的操作。
5. `error`:提交失败后执行的回调函数。该函数接收三个参数:XMLHttpRequest对象,错误类型,以及描述错误的异常对象。可以在此函数中处理错误或显示错误信息。
6. `dataType`:指定返回数据的类型。可以是"xml"、"json"、"script"、"html"或"text"。默认为自动判断。
8. `resetForm`:是否在提交成功后重置表单。默认为true。
9. `clearForm`:是否在提交成功后清空表单数据。默认为true。 10. `target`:用于响应数据的容器选择器。如果指定了该属性,返回的数据将会填充到该容器中。
11. `iframe`:是否使用隐藏的iframe进行表单提交。默认为false。当浏览器不支持XMLHttpRequest的跨域操作时,可以将该值设置为true。
12. `forceSync`:是否强制使用同步请求。默认为false。
13. `data`:自定义提交的参数。可以是一个对象或一个函数。
Ajax基本语法
Ajax基本语法
案例代码:
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:$("#username").val(), content:$("#content").val()},//发送到服务器的数据 dataType: "json", success: function(data){ $('#resText').empty(); //清空resText⾥⾯的所有内容 var html = ''; $.each(data, function(commentIndex, comment){ html += '
1.url:
要求为String类型的参数,(默认为当前页地址)发送请求的地址。
2.type:
要求为String类型的参数,请求⽅式(post或get)默认为get。注意其他http请求⽅法,例如put和delete也可以使⽤,但仅部分浏览器⽀持。
3.timeout:
要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()⽅法的全局设置。
4.async:
要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求
将锁住浏览器,⽤户其他操作必须等待请求完成才可以执⾏。
5.cache:
要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。
6.data:
要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将⾃动转换为字符串格式。get请求中将附加在url后。防⽌
这种⾃动转换,可以查看 processData选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。
ajax 请求带method方法
在Web开发中,AJAX(Asynchronous JavaScript and XML)一直是一个非常重要的技术。它可以让网页实现异步加载数据,而不需要刷新整个页面。在AJAX中,发送HTTP请求是一个非常基本的操作,而其中最重要的就是请求的方法(method)。本文将深入探讨AJAX请求带method方法的相关内容。
一、什么是AJAX请求?
让我们简单了解一下AJAX请求是什么。AJAX是一种客户端与服务器进行数据交互的技术,通过它可以在不刷新整个页面的情况下,更新页面的部分内容。这种实时性的交互,可以极大地提高用户体验。在AJAX请求中,常见的方法有GET和POST。
二、GET方法与AJAX请求
GET方法是AJAX请求中最常用的方法之一。它通过URL传递参数,可以获取服务器上的数据。GET方法的请求是有限制的,因为URL的长度是有限制的,所以传输的数据量较小,通常用来请求数据。
当我们需要从服务器获取一些静态数据时,可以使用GET方法。在AJAX中,可以通过以下方式发送GET请求:
```javascript var xhr = new XMLHttpRequest();
xhr.open('GET', 'example/api/data', true);
xhr.send();
```
三、POST方法与AJAX请求
与GET方法不同,POST方法通常用于提交表单数据、上传文件和请求服务器修改数据。POST方法不会在URL中暴露数据,因此更安全。通过POST方法发送AJAX请求的方式如下:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('POST', 'example/api/data', true);
xhr.setRequestHeader('Content-Type', 'application/json');
八爪鱼采集器使用AJAX滚动教程
八爪鱼·云采集服务平台
八爪鱼采集器使用AJAX滚动教程
本文讲述采集运用了AJAX技术的网站,AJAX滚动的设置。
示例网站:
/1893801487/F8yXEAh0i?ref=feedsdk&type=comment#_rnd1497952450258
相关采集教程:
新浪微博数据采集
58同城信息采集
搜狗微信文章采集
一、AJAX滚动示例
1)打开要采集的网页,选中一条评论,然后点击“选中全部”,再点击“采集以下元素文本”,微博评论的循环列表建立完成。
八爪鱼·云采集服务平台
八爪鱼采集器使用AJAX滚动教程-图1
八爪鱼采集器使用AJAX滚动教程-图2
八爪鱼·云采集服务平台
如图所示,我们打开的是微博页面,要采集的数据是本条微博下,所有的评论人和评论内容。在下一个步骤中,可以通过观察循环列表,验证网页是否使用了AJAX技术。
2)验证网页是否使用了AJAX加载技术。如果是,则需设置页面加载完成后向下滚动。
首先,重新打开网页,查看并点击循环框。通过循环列表,我们可以看到当前网页可以提取到15条数据。随后,将网页向下滚动,我们发现滚动条回弹了两次,新加载出来30条数据。即网页每向下滚动一次,会新加载出15条数据。同时我们发现,网页向下滚动时,不出现加载状态图标,说明该网页使用了AJAX滚动方法来加载数据,需要设置页面加载完成后向下滚动。
选中“打开网页步骤”,打开“高级选项”,勾选“页面加载完成后向下滚动”,设置滚动次数为“2次”,每次间隔“2秒”,滚动方式为“向下滚动一屏”。(示例中的网页,滚动方式宜设置为“直接滚动到底部”,后文中会有说明。)
八爪鱼·云采集服务平台
八爪鱼采集器使用AJAX滚动教程-图3
八爪鱼采集器使用AJAX滚动教程-图4
3)保存并启动。再次选中“打开网页步骤”,将滚动方式设为“直接滚动到底
八爪鱼·云采集服务平台
部”。点击左上角的“保存并启动”,选择“启动本地采集”,采集正常进行。
jquery_ajax_完全使用手册.pdf
参数
: options
返回值
: xmlHttpRequest
使用
HTTP请求一个页面。
这是
jquery的低级
ajax实现。要查看高级抽象,见
$.set、
$.post等,这些方法更易于理解
和使用。但是功能上有限制
(例如,没有错误处理函数
)。
警告:如果数据类型指定为
"script",那么
POST自动转化为
GET方法。
(因为
script会作
为一个嵌入页面的
script标签进行载入
)
$.ajax()函数返回它创建的
XMLHttpRequest对象。在大部分情况下,你不需要直接操作此
对象。通常,这个
XMLHttpRequest对象主要用于需要手动中断
XMLHttpRequest请求的
时候。
注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的
MIME响应类型
(如
.
xml 的类型是
"text/xml")。错误的
MIME类型能够导致脚本出现意想不到的问题。请查看
AJAX的范例来了解数据类型的更多信息。
$.ajax()函数需要一个参数,一个包含有键
/值对的对象,用于初始化并操作请求对象。
在
jQuery 1.2版本中,如果你指明了一个
JSONP回调函数,你就可以从其它的域中载入
JSON类型的数据,写法类似于
"myurl?callback=?" 。
jQuery会自动调用正确的方法名称
来代替查询字符串,执行你指定的回调函数。或者,你也可以指定
jsonp的数据类型的回调
函数,此函数会自动添加到
Ajax请求中。
参数选项
:
async(true) 数据类型
: Boolean
默认情况下,所有的请求都是异步发送的
(默认为
true)。
如果需要发送同步请求
, 设置选项
为
false。注意,同步请求可能会暂时的锁定浏览器
, 当请求激活时不能进行任何操作。
beforeSend 数据类型
: Function
一个预处理函数用于在发送前修改
XMLHttpRequest对象,设置自定义头部等。
XMLHttpRequest作为惟一的参数被传递。这是一个
