AJAX在www.dictworld.com上的实现

Meteorlet 2005-11-27 09:18:57
之前的贴子很多人在讨论动态从Server端获取数据问题,因为我比较钟爱PHP所以ASP版来的很少,也没来得及跟大家讨论。因为这是ASP版所以我也不多说PHP跟ASP语言相关的问题,只说说原理和效率。

客户端想获取服务器端的数据必须通过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的原因。而且每次请求花费的时间基本上是固定的,而且这些时间是在你
浏览网页的同时不知不觉的异步进行的。
...全文
253 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
blueonly 2005-12-17
  • 打赏
  • 举报
回复
mark
dh20156 2005-11-27
  • 打赏
  • 举报
回复
UP
satans18 2005-11-27
  • 打赏
  • 举报
回复
沙发~

顶!
源码直接下载地址: https://pan.quark.cn/s/1c143f32ee83 华为作为全球领先的通信设备供应商,其产品系列广泛涉及各类网络设备,其中包括我们接下来要探讨的上网卡产品。华为上网卡驱动程序是一种专门为华为品牌旗下多种型号上网卡开发的软件模块,其主要功能在于保障这些设备与计算机操作系统的无缝对接。涉及的型号涵盖EC8189、EC226、EC169C、EC360、EC1260、EC1261、EC189、EC122、EC150以及EC168,这些均是由华为公司推出的移动宽带调制解调器,旨在通过移动网络实现便捷的互联网接入服务。驱动程序在计算机系统中的地位举足轻重,它充当了硬件设备与操作系统之间的媒介,负责对硬件设备发出的指令进行解读和执行,并将操作系统的指令传递给硬件设备。华为上网卡驱动程序的及时更新和精准安装是保障设备稳定运作和性能达到最优的关键因素。"天翼宽带安装程序V1.3.3.exe"是由中国电信提供的一个整合性软件包,内含华为上网卡的驱动程序及配套的管理工具。用户可借助此安装程序来执行华为上网卡的相关驱动安装及更新,同步享受中国电信的3G或4G网络服务。版本标识V1.3.3代表软件经过迭代优化,通常包含了对错误的修正、性能的改善以及新功能的引入。 "SetupInfo.xml"作为安装程序的配置文档,其中收录了安装流程中的各项设定和元数据信息,例如安装流程、文件定位、依赖条件等。它是安装程序在执行时参照和遵循的纲领,旨在确保安装流程按既定方案进行。文件名"CT_HW_EVDO_Driver"或许指向华为的EVDO(Evolution-Data Optimized)驱动程序,EVDO是一种3G无线通信规范,具备高速数据传输的特性。该驱动可...
内容概要:本文围绕【博士论文复现】基于小信号扫频辨识的光伏并网逆变器正负序交互稳定性分析展开,结合Matlab代码与Simulink仿真实现,系统研究了光伏并网逆变器在弱电网环境下的正负序阻抗建模与交互稳定性问题。重点采用小信号扫频法进行系统辨识,获取逆变器的正负序阻抗特性,并通过奈奎斯特稳定判据等方法分析其在不同电网强度下的稳定性表现。文中详细阐述了扫频激励信号的设计原理、频域响应数据的提取与处理流程、阻抗模型的拟合与验证方法等关键技术环节,实现了对逆变器在复杂电网条件下动态交互行为的精确刻画。该研究不仅深入揭示了新能源并网系统中潜在的宽频振荡机理,也为提升系统稳定性、优化控制器设计提供了坚实的理论依据和有效的技术手段。; 适合人群:具备电力电子、自动控制及电力系统基础知识,从事新能源并网、电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握基于小信号扫频法的电力电子装置阻抗建模方法;② 深入理解光伏并网逆变器在弱电网下的正负序交互稳定性机理;③ 学习并复现高水平博士论文中的核心仿真技术,提升科研实践能力;④ 为实际工程中新能源并网系统的稳定性分析、振荡问题诊断与控制器优化设计提供理论支持和技术参考。; 阅读建议:学习者应结合提供的Matlab代码与Simulink模型,深入理解扫频辨识的原理与实现步骤,重点关注锁相环、电流控制环等关键模块对系统阻抗特性的影响,并尝试改变系统参数以观察稳定性变化,从而加深对理论知识的掌握。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 OPC(OLE for Process Control)是由微软推出的一种应用于工业自动化场景下的数据交换规范,其目的是使多样化的自动化装置与软件平台之间能够实现信息互通。在本项研究中,我们集中探讨的是一个运用C#语言构建的完整OPC客户端的源代码实现。该客户端具备与OPC服务器建立连接、获取或设置数据的能力,从而促成设备间的协同工作。鉴于C#是.NET框架的核心编程语言,并且拥有丰富的类库资源及强大的面向对象支持,它特别适合用于开发此类工业环境的应用程序。接下来将针对OPC客户端源代码中可能涉及的核心技术要点进行详尽的阐述: 1. **OPC Foundation .NET库**:为了在C#环境下实现OPC通信功能,开发人员通常会选择采用OPC Foundation提供的.NET库,例如OPC-UA .NET Standard或OPC Classic .NET。这些库提供了操作OPC服务器的必要API,涵盖了建立连接、遍历服务器节点、读取与写入数据等一系列操作。 2. **OPC连接配置**:客户端在运行前必须先与OPC服务器建立通信通道。这一过程通常需要配置服务器的位置信息、身份验证凭证(包括用户名和密码)以及连接的详细参数。在源代码中,可能会包含一个`Connect()`方法来处理这些连接细节。 3. **数据项订阅机制**:OPC客户端通过向服务器订阅数据项来实时获取数据更新。在订阅阶段,客户端会指定需要监控的数据项的唯一标识,并设定当数据发生变化时触发的回调函数。在C#编程语言中,这一过程可能通过`AddSubscription()`和`AddItem()`方法来完...

28,403

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧