AJAX在www.dictworld.com上的实现
客户端想获取服务器端的数据必须通过HTTP请求,以前都是通过超链接去刷新,但是自从推出了XMLHTTP组件以后,我们可以把HTTP请求放到Javascript里去实现,获取的数据通过Javascript动态显示,这样做的好处就是无刷新,不会看到页面的闪烁,最先应用的地方就是聊天室。后来有人把这种工作原理称为AJAX。
HTTP请求原理:
-> Send Request -> Server Side
XMLHTTP |
<------Response---------|
AJAX实现原理:
新建XMLHTTP -> 填写必要的Header -> 设定异步回调函数用来处理接收到的数据 -> 发送HTTP请求
异步回调函数 OnProcess() -> 判断返回的状态是否是正确的200 status->接收数据,保存到字符串
->分析字符串(如果是XML格式,可以调用XMLDOM进行解析)->把得到的数据填入网页中的元素里
实现代码:
// HTTP request object
var req = null;
// HTTP request url
var url = "www.dictworld.com/dict.php?s=1";
if (window.XMLHttpRequest) { // Non-IE browsers
req = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req) {
req.onreadystatechange = OnProcess;
req.open("GET", url, true);
req.send();
}
// callback function to handle the response from the server
function OnProcess()
{
if (req.readyState == 4) {
if (req.status == 200) {
// 正确返回
}
}
}
一次HTTP请求需要很多时间,所以说用AJAX是以牺牲效率为代价的,自然速度也不会很快。还有一种
做法就是把数据库里的数据通过Javascript缓存到客户端,类似这样:
var word[1] = "abc";
var word[2] = "abd";
var word[3] = "abe";
...
然后对word数组进行搜索过滤。对于数据量少的情况这样做是可行的,但是对于海量数据库这样的一个
页面,加载处理时间会远远大于用户所能忍受的时间。加载的数据量其实不多的,就拿我的数据库来说,
也就5万条记录,每条记录10个字母的单词,也就只有500K的数据,但是对这5万条记录进行遍历就很慢
了,如果加上排序,一般冒泡排序就是O(n^2)的复杂度。把对这么多数据的处理放到服务器端是值得的。
这就是为什么GOOGLE喜欢AJAX的原因。而且每次请求花费的时间基本上是固定的,而且这些时间是在你
浏览网页的同时不知不觉的异步进行的。
相关推荐
Ansible的安装及部署
常用配置参数 #[default] ##基本信息设定 inventory= ##指定清单路径 remote_user= ##在受管主机上登陆的用户名称,未指定使用当前用户 ask_pass= ##是否提示输入SSH密码,如果公钥登陆设定为false library= ##库文件存放目录 local_tmp= ##本机临时命令执行目录 remote_tmp= ##远程主机临时py命令文件存放目录 forks= ##默认并发数量 host_key_checking= ##第一次连接受管主机时是否要输入yes建立
二、ansible 安装与配置文件管理
ansible安装常用的两种方式,yum安装和 pip程序安装 pip安装(python的包管理模块)安装 查看ansible版本 ansible --version 二、ansible相关文件 ansible目录如下(yum安装)配置文件目录:/etc/ansible/ansible.cfg配置主机清单文件:/etc/ansible/hosts存放ansible角色的目录:/etc/ansible/roles执行文件:/usr/bin/Lib库依赖目录:/usr/lib/pythonX.X
JEP30-PX100A PartModel Product Guidelines for Electronic-Device Substrates and Assemblies – XML Requ
JEP30-PX100A PartModel Product Guidelines for Electronic-Device Substrates and Assemblies – XML Requirements
基于Matlab的自动睡眠粒状结构检测算法,从脑电信号中进行。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
JEP375 2.5D_3D Silicon thinned wafers with Through Silicon Vias (TSV’s) and Backside Redistribution
JEP375 2.5D_3D Silicon thinned wafers with Through Silicon Vias (TSV’s) and Backside Redistribution Layer (RDL).pdf


