编程示例:汉字生成盲文的翻译器

1 翻译器的意义

我国有视障人士2000多万人,需要把大量的文章与书籍转换成盲文书。


2 翻译器的开发原理

根据汉语与盲文符号的对照表,以此为基础,进行汉字与盲文之间的转换。

如下的两个图片是汉语与盲文符号的对照表。


3 翻译器的开发示例代码

<HTML>
<HEAD>
<TITLE> 汉字生成盲文第一版 </TITLE>
<meta charset="gb2312">
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script src='zh_character_to_pinyin_character_with_tone_map.js'></script>
</HEAD><BODY onkeypress='key_operation()'><p id="p1">生成盲文的方法</p><p>在左边的方框内,输入一段话,再点击生成盲文的按钮,在画布上就生成了盲文</p>
<textarea id='txt5' rows="5" cols="140"></textarea>
<input type='button' value='生成盲文' onclick='print_braille()'></input><textarea id='txt6' rows="5" cols="140"></textarea><canvas id="myCanvas" width="600" height="300"  style="background-color:blue;border: 10px yellow solid" ></canvas>
<p>
<input type='button' value='q' onclick='input("q")'></input>
<input type='button' value='w' onclick='input("w")'></input>
<input type='button' value='e' onclick='input("e")'></input>
<input type='button' value='r' onclick='input("r")'></input>
<input type='button' value='t' onclick='input("t")'></input>
<input type='button' value='y' onclick='input("y")'></input>
<input type='button' value='u' onclick='input("u")'></input>
<input type='button' value='i' onclick='input("i")'></input>
<input type='button' value='o' onclick='input("o")'></input>
<input type='button' value='p' onclick='input("p")'></input>
<input type='button' value='[' onclick='input("[")'></input>
<input type='button' value=']' onclick='input("]")'></input>
<input type='button' value='\' onclick='input("\")'></input>
</p>
<p><input type='button' value='a' onclick='input("a")'></input>
<input type='button' value='s' onclick='input("s")'></input>
<input type='button' value='d' onclick='input("d")'></input>
<input type='button' value='f' onclick='input("f")'></input>
<input type='button' value='g' onclick='input("g")'></input>
<input type='button' value='h' onclick='input("h")'></input>
<input type='button' value='j' onclick='input("j")'></input>
<input type='button' value='k' onclick='input("k")'></input>
<input type='button' value='l' onclick='input("l")'></input>
<input type='button' value=';' onclick='input(";")'></input>
<input type='button' value='' onclick='input("")'></input>
<input type='button' value='enter' onclick='input("10")'></input>
</p>
<p>  
<input type='button' value='z' onclick='input("z")'></input>
<input type='button' value='x' onclick='input("x")'></input>
<input type='button' value='c' onclick='input("c")'></input>
<input type='button' value='v' onclick='input("v")'></input>
<input type='button' value='b' onclick='input("b")'></input>
<input type='button' value='n' onclick='input("n")'></input>
<input type='button' value='m' onclick='input("m")'></input>
<input type='button' value=',' onclick='input(",")'></input>
<input type='button' value='.' onclick='input(".")'></input>
<input type='button' value='/' onclick='input("/")'></input>
</p>
<script>
var e=document.getElementById("myCanvas");
var cxt=e.getContext("2d");
cxt.fillStyle="#FF0000";
cxt.fillRect(0,0,50,5);var first_sound=[[[[1,0],[1,0],[0,0]],'b'],
[[[1,1],[1,0],[1,0]],'p'],
[[[1,1],[0,0],[1,0]],'m'],
[[[1,1],[1,0],[0,0]],'f'],
[[[1,1],[0,1],[0,0]],'d'],
[[[0,1],[1,1],[1,0]],'t'],
[[[1,1],[0,1],[1,0]],'n'],
[[[1,0],[1,0],[1,0]],'l'],
[[[1,1],[1,1],[0,0]],'g'],
[[[1,1],[1,1],[0,0]],'j'],
[[[1,0],[0,0],[1,0]],'k'],
[[[1,0],[0,0],[1,0]],'q'],
[[[1,0],[1,1],[0,0]],'h'],
[[[1,0],[1,1],[0,0]],'x'],
[[[0,1],[0,0],[1,0]],'zh'],
[[[0,1],[0,0],[1,0]],'zhi'],
[[[1,1],[1,1],[1,0]],'ch'],
[[[1,1],[1,1],[1,0]],'chi'],
[[[1,0],[0,1],[0,1]],'sh'],
[[[1,0],[0,1],[0,1]],'shi'],
[[[0,1],[1,1],[0,0]],'r'],
[[[0,1],[1,1],[0,0]],'ri'],
[[[1,0],[0,1],[1,1]],'z'],
[[[1,0],[0,1],[1,1]],'zi'],
[[[1,1],[0,0],[0,0]],'c'],
[[[1,1],[0,0],[0,0]],'ci'],
[[[0,1],[1,0],[1,0]],'s'],
[[[0,1],[1,0],[1,0]],'si']];var last_sound=[[[[0,0],[0,1],[1,0]],'a'],
[[[0,0],[1,0],[0,1]],'o'],
[[[0,0],[1,0],[0,1]],'e'],
[[[0,1],[1,0],[0,0]],'yi'],
[[[0,1],[1,0],[0,0]],'i'],
[[[1,0],[0,0],[1,1]],'wu'],
[[[1,0],[0,0],[1,1]],'u'],
[[[0,1],[0,0],[1,1]],'yu'],
[[[0,1],[0,0],[1,1]],'v'],
[[[1,0],[1,1],[1,0]],'er'],
[[[0,1],[1,0],[0,1]],'ai'],
[[[0,0],[1,1],[1,0]],'ao'],
[[[0,1],[1,0],[1,1]],'ei'],
[[[1,0],[1,1],[1,1]],'ou'],
[[[1,1],[1,0],[0,1]],'ya'],
[[[1,1],[1,0],[0,1]],'ia'],
[[[0,1],[0,1],[1,0]],'yao'],
[[[0,1],[0,1],[1,0]],'iao'],
[[[1,0],[0,1],[0,0]],'ye'],
[[[1,0],[0,1],[0,0]],'ie'],
[[[1,0],[1,1],[0,1]],'you'],
[[[1,0],[1,1],[0,1]],'iou'],
[[[1,1],[1,1],[1,1]],'wa'],
[[[1,1],[1,1],[1,1]],'ua'],
[[[1,1],[0,1],[1,1]],'wai'],
[[[1,1],[0,1],[1,1]],'uai'],
[[[0,1],[1,1],[0,1]],'wei'],
[[[0,1],[1,1],[0,1]],'uei'],
[[[1,0],[0,1],[1,0]],'wo'],
[[[1,0],[0,1],[1,0]],'uo'],
[[[0,1],[1,1],[1,1]],'yue'],
[[[0,1],[1,1],[1,1]],'ve'],
[[[1,0],[1,0],[1,1]],'an'],
[[[0,0],[1,0],[1,1]],'ang'],
[[[0,0],[0,1],[1,1]],'en'],
[[[0,1],[0,1],[1,1]],'eng'],
[[[1,1],[0,0],[0,1]],'yan'],
[[[1,1],[0,0],[0,1]],'ian'],
[[[1,1],[0,0],[1,1]],'yang'],
[[[1,1],[0,0],[1,1]],'iang'],
[[[1,0],[1,0],[0,1]],'yin'],
[[[1,0],[1,0],[0,1]],'in'],
[[[1,0],[0,0],[0,1]],'ying'],
[[[1,0],[0,0],[0,1]],'ing'],
[[[1,1],[1,1],[0,1]],'wan'],
[[[1,1],[1,1],[0,1]],'uan'],
[[[0,0],[1,1],[1,1]],'wang'],
[[[0,0],[1,1],[1,1]],'uang'],
[[[0,0],[1,1],[0,0]],'wen'],
[[[0,0],[1,1],[0,0]],'uen'],
[[[0,0],[1,1],[0,1]],'weng'],
[[[0,0],[1,1],[0,1]],'ong'],
[[[1,1],[1,0],[1,1]],'yuan'],
[[[1,1],[1,0],[1,1]],'van'],
[[[0,1],[0,1],[0,1]],'yun'],
[[[0,1],[0,1],[0,1]],'vn'],
[[[1,1],[0,1],[0,1]],'yong'],
[[[1,1],[0,1],[0,1]],'iong']
];var tone_number=[32,8,2,10,0,0,0];
var number=[28,32,40,48,52,36,56,60,44,24];
var english_character=[32,40,48,52,36,56,60,44,24,28,34,42,50,54,38,58,62,46,26,30,35,43,29,51,55,39];var meta_letters=['a','o','e','i','u','v'];var ch_letters=[[257,225,462,224],[333,243,466,242],[275,233,283,232],[299,237,464,236],[363,250,468,249],[470,472,474,476]];var braille_array=[];//translate_en_letters_to_ch_letters('jiong3')      jiong3   ---->    jǐong
function translate_en_letters_to_ch_letters(str)
{
var position_A=-1;
var position_B=-1;for(var i=0;i<meta_letters.length;i++){position_A=str.indexOf(meta_letters[i]);if(position_A>=0){if  (i==3){ position_B=str.indexOf(meta_letters[i+1]);if(position_B<position_A){break;}else {position_B=position_A;i=i+1;break;}}else {break;}}         }var re_source_letter=meta_letters[i];var tone=parseInt(str.charCodeAt(str.length-1),10)-48;if(tone>0&&tone<=9){var re_target_letter=String.fromCharCode(ch_letters[i][tone-1]);str=str.replace(re_source_letter,re_target_letter);str=str.substring(0,str.length-1);}return str;
}
/*function  test()
{
document.getElementById("txt4").innerText=get_pinyin_code_from_quwei_code(document.getElementById("txt3").innerText);
}*/function getChsAscii(str)
{var high=Math.floor(str/100);var low=parseInt(str%100,10);return high*256+low+160*257-65536;
}function input(val)
{if(val>='a'&&val<='z'){document.getElementById("txt3").innerText=document.getElementById("txt3").innerText+val;}else if (val=='10'){document.getElementById("txt4").innerText=get_pinyin_code_from_quwei_code(document.getElementById("txt3").innerText);document.getElementById("txt3").innerText='';}
}
var key_buffer='';
function key_operation()
{var val=event.charCode;if(val>=97&&val<=122){key_buffer=key_buffer+event.char;}else if (val==13){document.getElementById("txt4").innerText=get_pinyin_code_from_quwei_code(key_buffer);key_buffer='';}
}function getvalue(val){if (val=='') {return document.getElementById("txt5").value;}else {return val;}
}
/*
function test()
{var cc=getvalue(document.getElementById("txt5").innerText);var str='';var ch_str='';var s=0;var count=0;for(var i=0;i<pydic.length;i++){if(pydic.charCodeAt(i)>660){str+=pydic.charAt(i)+",";}}document.getElementById("txt6").value=str;//get_sound(cc);//document.getElementById("txt6").innerText=str;//result;
}*///get_sound_part('sheng1')----> sh eng 1
function get_sound_part(cc)
{var first_sound_ch="bpmfdtnlgjkqhx";var last_sound_ch="wyaeiou";var result_first='';var result_last='';var result_num='';var str='';var ch_str='';var s=0;var count=0;var i=0;if(first_sound_ch.indexOf(cc.charAt(i))!=-1){s=1;result_first=cc.charAt(i);}else if(cc.charAt(i)=='z'||cc.charAt(i)=='c'||cc.charAt(i)=='s'){if(cc.charAt(num_add(i,1))=='h'){ if(cc.charAt(num_add(i,2))=='i'){result_first=cc.charAt(i)+cc.charAt(num_add(i,1))+cc.charAt(num_add(i,2));s=3;}else {result_first=cc.charAt(i)+cc.charAt(num_add(i,1));s=2;}}else if(cc.charAt(num_add(i,1))=='i'){result_first=cc.charAt(i)+cc.charAt(num_add(i,1));s=2;}else {result_first=cc.charAt(i);s=1;}}else if(cc.charAt(i)=='r') {if(cc.charAt(num_add(i,1))=='i'){result_first=cc.charAt(i)+cc.charAt(num_add(i,1));s=2;}else {result_first=cc.charAt(i);s=1;}}else if(last_sound_ch.indexOf(cc.charAt(i))!=-1){result_first='';s=0;}for(var i=s;i<cc.length;i++){if(cc.charCodeAt(i)>64){result_last+=cc.charAt(i);}else {result_num=cc.charAt(i);}}var front=find_code(first_sound,result_first);var mid=find_code(last_sound,result_last);var last=tone_number[result_num-1];braille_array.push(front);braille_array.push(mid);braille_array.push(last);return  front+ ' ' +mid+' '+last;
}function print_braille()
{var cc=getvalue(document.getElementById("txt5").innerText);var str='';var single_str='';var ch_str='';var s=0;var count=0;braille_array=[];for(var i=0;i<cc.length;i++){if(pydic.indexOf(cc.charAt(i))!=-1&&cc.charCodeAt(i)>200){s=1;single_str='';while(pydic.charAt(pydic.indexOf(cc.charAt(i))+s)!=","){single_str+=pydic.charAt(pydic.indexOf(cc.charAt(i))+s);s++;}str+=get_sound_part(single_str); //进行了音节分离str+=" ";ch_str+=cc.charAt(i)+times2(' ',s-2);count+=s;}else if (cc.charCodeAt(i)==13||cc.charCodeAt(i)==10||count>70){str+=cc.charAt(i)+String.fromCharCode(13)+String.fromCharCode(10)+ch_str+String.fromCharCode(13)+String.fromCharCode(10);ch_str='';count=0;}else{str+=cc.charAt(i);ch_str+=cc.charAt(i);count+=1;}}make_braille(braille_array);document.getElementById("txt6").value=str;//get_sound(cc);//document.getElementById("txt6").innerText=str;//result;
}//
function make_braille(arr)
{// var arr=[39,25,10,39,38,2,40,49,32,52,9,0,56,11,32,34,15,10,54,27,10,37,35,32,28,35,10,0,24,32,52,61,10,44,63,10];var left=100;var top=20;var colnum=0;var rownum=0;for (var i=0;i<arr.length;i++){  if(i>20) {rownum=1;colnum=i-20;}else {rownum=0;colnum=i;}print_a_character(left,top,colnum,rownum,arr[i]);}}
function print_a_character(left,top,colnum,rownum,num)
{var res=num_to_array(num);for(var i=0;i<res.length;i++){for(var j=0;j<res[i].length;j++){if(res[i][j]==1){drawCircleWithNative(left+1+j*10+colnum*24,top+1+i*10+rownum*34,4,4,0,360);}else {drawCircleWithNativeEmpty(left+1+j*10+colnum*24,top+1+i*10+rownum*34,4,4,0,360);}}}
}
//get_sound('声') ---->sheng1
/*function get_sound(character)
{if(character=='声') {return 'sheng1';}else {return 'yin';}
}*/// times2('a',2)  --->'aa'function times2(str, num){return new Array(num+1).join(str);}
function num_add(a,b)
{return parseInt(a,10)+parseInt(b,10);
}//find_code(first_sound_str,'b')---->40
function find_code(arr,str)
{  var result=0;for(var i=0;i<arr.length;i++){if(arr[i][1]==str){result=array_to_num(arr[i][0]);break;}}return result;
}
//array_to_num([[1,0],[1,0],[0,0]]) --->40
function array_to_num(arr)
{ var result=0;for(var i=0;i<arr.length;i++){for(var j=0;j<arr[i].length;j++){result=result*2+arr[i][j];}}return result;
}//num_to_array(40)---->[[1,0],[1,0],[0,0]]
function num_to_array(num)
{ var temp=0;var result=[[0,0],[0,0],[0,0]];for(var i=result.length-1;i>=0;i--){for(var j=result[i].length-1;j>=0;j--){temp=num%2;num=(num-temp)/2;result[i][j]=temp;}}return result;
}function drawCircleWithNative(cx,cy,ra,rb,start,end)
{cxt.fillStyle='black';cxt.strokeStyle='pink';cxt.lineWidth=1;cxt.beginPath();cxt.arc(cx,cy,ra,0,Math.PI*2);cxt.closePath();cxt.fill();cxt.stroke();
}function drawCircleWithNativeEmpty(cx,cy,ra,rb,start,end)
{cxt.fillStyle='white';cxt.strokeStyle='pink';cxt.lineWidth=1;cxt.beginPath();cxt.arc(cx,cy,ra,0,Math.PI*2);cxt.closePath();cxt.fill();cxt.stroke();
}</script>
</BODY>
</HTML>

4 翻译器的界面示例与执行示例结果

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

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

相关文章

BMP位图原理深度解析及编程实现RGB565图片格式转换

1、前言 在Windows的画图软件中可以看到&#xff0c;常见的BMP有如下图所示的几种&#xff1a;单色位图、16色位图、256色位图和24位位图&#xff0c;其颜色深度分别为1、4、8、24。 在一些单片机设备中的LCD显示屏幕中&#xff0c;仅仅支持RGB565这一类的16位颜色深度图像&…

[windows][软件]Windows平台MongoDB的安装

1.下载软件 上mongoDB官网&#xff0c;网址&#xff1a;Download MongoDB Community Server | MongoDB&#xff0c; 下载对应的版本软件 2.安装 下载安装包如图&#xff1a; 双击安装&#xff1a; 默认&#xff0c;点击next 默认,点击next 默认点Complete&#xff0c;完整安…

混杂设备驱动、Linux内核中的中断、火焰传感器驱动、呼吸传感器驱动、等待队列

混杂设备驱动 混杂设备也叫杂项设备&#xff0c;是对普通的字符设备(struct cdev)的一种封装。misc 设备会自动创建cdev&#xff0c;不需要像我 们以前那样手动创建&#xff0c;因此采用misc 设备驱动可以简化字符设备驱动的编写。具有以下特点&#xff1a; 1) 主设备号为10&…

DVWA靶场通关(CSRF)

CSRF 是跨站请求伪造&#xff0c;是指利用受害者尚未失效的身份认证信息&#xff08;cookie、会话等&#xff09;&#xff0c;诱骗其点击恶意链接或者访问包含攻击代码的页面&#xff0c;在受害人不知情的情况下以受害者的身份向&#xff08;身份认证信息所对应的&#xff09;服…

WRF-LES与PALM微尺度气象大涡模拟

针对微尺度气象的复杂性&#xff0c;大涡模拟&#xff08;LES&#xff09;提供了一种无可比拟的解决方案。微尺度气象学涉及对小范围内的大气过程进行精确模拟&#xff0c;这些过程往往与天气模式、地形影响和人为因素如城市布局紧密相关。在这种规模上&#xff0c;传统的气象模…

生信学院|09月06日《在线产品交流工具》

课程主题&#xff1a;在线产品交流工具 课程时间&#xff1a;2024年09月06日 14:00-14:30 主讲人&#xff1a;曾裕章 生信科技 售后服务工程师 3DEXPERIENCE云平台基于云平台的交流工具XPR功能讲解Q&A 安装腾讯会议客户端或APP报名哦~~~ 或者点击链接报名&#xff1a;…

C语言进阶(一)数据在内存中的存储

整数在内存中的存储 整数的2进制表示方法有三种&#xff0c;即原码、反码和补码 有符号的整数&#xff0c;三种表示方法均有符号位和数值位两部分 符号位用0表示“正”&#xff0c;用1表示“负”&#xff0c;最高位被当做符号位&#xff0c;剩余的都是数值位 正整数的原、反…

构建buildroot根文件系统

目录 1.确定gcc工具版本2.下载Buildroot源码并编译2.1 下载Buildroot源码2.2 配置Buildroot2.2.1 配置 Target options2.2.2 配置交叉编译工具链2.2.3 配置 System configuration2.2.4 配置 Filesystem images2.2.5 禁止编译 Linux 内核和 uboot2.2.6 编译Buildroot源码2.2.7 查…

【多线程】深入剖析线程安全问题

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;多线程 / javaEE初阶 前言 线程安全问题是在多线程学习中一个十分重要的话题。多个线程并发执行就容易产生许多冲突与问题&#xff0c;如何协调好每个线程的执行&#xff0c;让多线程编程“多而不乱…

【Node】【3】回调函数

nodejs 是一个基于事件驱动和非阻塞异步的JavaScript运行时环境。 Node.js 采用单线程模型&#xff0c; 单线程意味着 Node.js 在任何给定时刻只能执行一段代码&#xff0c;但通过异步执行回调函数&#xff0c;可以在等待 I/O 操作完成的同时继续执行其他代码&#xff0c;从而…

每日一练-threejs实现三维动态热力图

前言&#xff1a;学习自用Three.js搞个炫酷热力山丘图&#xff0c;作者讲解的十分详细&#xff0c;在这里不再过多赘述&#xff0c;直接上代码&#xff01; <template><div class"map" ref"map"></div> </template><script set…

XTuner微调个人小助手认知 #书生浦语大模型实战营#

1.任务&#xff1a; 本次的任务是使用 XTuner 微调 InternLM2-Chat-1.8B 实现自己的小助手认知&#xff0c;从而让模型能够个性化的回复&#xff0c;让模型知道他是我们的小助手&#xff0c;在实战营帮我们完成XTuner微调个人小助手认知的任务。并截图打卡。 任务打卡&#x…

书生.浦江大模型实战训练营——(十一)LMDeploy 量化部署进阶实践

最近在学习书生.浦江大模型实战训练营&#xff0c;所有课程都免费&#xff0c;以关卡的形式学习&#xff0c;也比较有意思&#xff0c;提供免费的算力实战&#xff0c;真的很不错&#xff08;无广&#xff09;&#xff01;欢迎大家一起学习&#xff0c;打开LLM探索大门&#xf…

复杂的编辑表格

需求描述 表格可以整体编辑&#xff1b;也可以单行弹框编辑&#xff1b;且整体编辑的时候&#xff0c;依然可以单行编辑 编辑只能给某一列&#xff08;这里是参数运行值&#xff09;修改&#xff0c;且根据数据内容的参数范围来判断展示不同的形式&#xff1a;input/数字输入/单…

计算机网络——TCP协议与UDP协议详解(下)

一、TCP协议 1.1 TCP协议的报文 TCP全称为 "传输控制协议(Transmission Control Protocol")。人如其名&#xff0c;要对数据的传输进行一个详细的控制。我们先看其报文格式&#xff0c;如下图&#xff1a; TCP报文由以下几个字段组成&#xff1a; 源端口号和目标端口…

MySQL索引详解:原理、数据结构与分析和优化

在数据库管理系统中&#xff0c;索引是提高查询性能、优化数据存储结构的重要工具。MySQL作为广泛使用的开源关系型数据库管理系统&#xff0c;其索引机制对于提升数据库操作效率具有至关重要的作用。本文将围绕“MySQL索引详解&#xff1a;原理、数据结构与分析和优化”这一主…

CRUD的最佳实践,联动前后端,包含微信小程序,API,HTML等(二)

CRUD老生常谈&#xff0c;但是我搜索了一圈&#xff0c;发觉几乎是着重在后端&#xff0c;也就是API部分&#xff01; 无外乎2个思路 1.归总的接口&#xff0c;比如一个接口&#xff0c;实现不同表的CRUD 2.基于各自的表&#xff0c;使用代码生成器实现CRUD 个人来说是推荐2&am…

Harmony鸿蒙应用开发:解决Web组件加载本地资源跨域

鸿蒙开发文档中有一节 加载本地页面 提到了可以通过 $rawfile 方法加载本地 HTML 网页&#xff1a; Index.ets 1Web({ src: $rawfile("local.html"), controller: this.webviewController })但是如果在 local.html 中需要引用一些静态资源&#xff0c;例如图片、JS、…

MMS论文中关于语种识别的内容摘要

MMS论文中关于语种识别的内容摘要 前言语种识别相关内容实验结论 前言 摘要翻译一些内容。 论文地址请看这里 语种识别相关内容 Whisper支持LID&#xff0c;可以区分99种不同的语言&#xff1b;有人使用wav2vec 2.0实现LID&#xff0c;数据集中包含10种亚洲语言&#xff1b;…

JavaScript - Ajax

Asynchronous JavaScript And XML&#xff0c;异步的JavaScript和XML 作用: 数据交换&#xff1a;通过Ajax可以给服务器发送请求&#xff0c;并获取服务器响应的数据。异步交互&#xff1a;可以在不重新加载整个页面的情况下&#xff0c;与服务器交换数据并更新部分网页的技术…