社区
XML/XSL
帖子详情
请问如何用一个CGI程序将通过浏览器FORM 提交来的参数转化为XML格式
fanping
2000-04-25 10:01:00
...全文
182
8
打赏
收藏
请问如何用一个CGI程序将通过浏览器FORM 提交来的参数转化为XML格式
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wingcky
2001-04-13
打赏
举报
回复
唉,太可怜了,在SQL SEVER 2000中这问题早不是问题了,看一下“Configure SQL XML Support in IIS”
wingcky
2001-04-13
打赏
举报
回复
唉各位太可怜了,在SQL SERVER 2000 这问题早解决了。配置一下“Configure SQL XML Support in IIS”
osdx
2001-04-13
打赏
举报
回复
各位,
半年前的对策如今看来自然不合时宜了
所以无需炒旧贴、炒冷饭!
ender
2001-04-12
打赏
举报
回复
TO:x86(大雪)
你这样作很麻烦,效率低,容易出错……
JAVA有专门的API是搞这个的……
不过我也才开始研究……
x86
2000-12-19
打赏
举报
回复
如果你所说的XML格式就是XML文件格式的话,那不难呀,
自己生成一个文件就是了,不需要解析器的。写文件应该不是很难。
如果传过来的是XML数据,就需要解析器了。
我不知道是否理解了你的意思,用个例子说一下我的理解,如果理解错了,咱们再讨论讨论。
比如form传过来的数据是:
field value
--------------------------
username admin
password admin
age 18
然后你可以把这些数据插入到(或者生成一个新的)一个XML文件中:
...
<user_list>
....
<user>
<username>admin</username>
<password>admin</password>
<age>18</age>
</user>
....
<user_list>
...
flycondor
2000-12-19
打赏
举报
回复
如果是Perl,那你要有一个Perl的XML解析器
jonaph
2000-04-28
打赏
举报
回复
偶也在研究这个问题, 而且有不少心得,如有意思的话
可以共同研究一下
mailto : sujing78@263.net
or tel: (021)-53966655-2218
王释之
2000-04-28
打赏
举报
回复
有意思!
jquery-1.1.3 效率提高800%
选择器速度提升
选择器的速度大幅度提高了,下表为jQuery1.1.2和1.1.3的选择器速度对比,提高了8倍多
Browser jQuery 1.1.2 jQuery 1.1.3 % Improvement
IE 6 4890ms 661ms 740%
Firefox 2 5629ms 567ms 993%
Safari 2 3575ms 475ms 753%
Opera 9.1 3196ms 326ms 980%
Average improvement: 867%
下表为jQuery1.1.3与常用的一些JS库选择器的对比:
Browser Prototype jQuery Mootools Ext Dojo
IE 6 1476ms 661ms 1238ms 672ms 738ms
Firefox 2 219ms 567ms 220ms 951ms 440ms
Safari 2 1568ms 475ms 909ms 417ms 527ms
Opera 9.1 220ms 326ms 217ms 296ms 220ms
更新项目
New Selectors
Unicode Selectors: This is a huge addition for those of you who want to use Unicode attribute values, IDs, class names, or tag names. You can now use them directly in jQuery selectors:
$("div.台北")
$("div#台北")
$("foo_bar台北")
$("div[@id=台北]")Escape Selectors: A frequently requested feature you can now select elements by ID (or other selector) that uses a special character, for example this will find the div that has the ID of “foo.bar”:
$("div#foo\\.bar")Inequality Selector: While this selector isn’t part of the CSS specification, it’s frequently used and included in other selector libraries, so we decided to add it in:
$("div[@id!=test]"):nth-child() improvements: This selector allows you to locate specific child elements. We’ve supported selectors like :nth-child(1) and :nth-child(odd) since the beginning of jQuery, now we’ve added advanced :nth-child selectors, such as:
$("div:nth-child(2n)")
$("div:nth-child(2n+1)")
$("div:nth-child(n)")Space-separated attributes: After being removed in jQuery 1.0, this selector has now been brought back by popular demand. It allows you to locate individual items in a space-separated attribute (such as a class or rel attribute).
$("a[@rel~=test]")Animation Improvements
参数
:
options
返回值:
XML
HttpRequest
使用HTTP请求
一个
页面。
这是jQuery的低级AJAX实现。要查看高级抽象,见$.set、$.post等,这些方法更易于理解和使用。但是功能上有限制(例如,没有错误处理函数)。
警告:如果数据类型指定为"script",那么POST自动
转化
为GET方法。(因为script会作为
一个
嵌入页面的script标签进行载入)
$.ajax()函数返回它创建的
XML
HttpRequest对象。在大部分情况下,你不需要直接操作此对象。通常,这个
XML
HttpRequest对象主要用于需要手动中断
XML
HttpRequest请求的时候。
注意:如果你指明了下面列出的数据类型,请确保服务端发送了正确的MIME响应类型(如.
xml
的类型是 "text/
xml
")。错误的MIME类型能够导致脚本出现意想不到的问题。请查看AJAX的范例来了解数据类型的更多信息。
$.ajax()函数需要
一个
参数
,
一个
包含有键/值对的对象,用于初始化并操作请求对象。
在jQuery 1.2版本中,如果你指明了
一个
JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。
参数
选项:
async(true) 数据类型: Boolean
默认情况下,所有的请求都是异步发送的(默认为true)。 如果需要发送同步请求, 设置选项为false。注意,同步请求可能会暂时的锁定
浏览器
, 当请求激活时不能进行任何操作。
beforeSend 数据类型: Function
一个
预处理函数用于在发送前修改
XML
HttpRequest对象,设置自定义头部等。
XML
HttpRequest作为惟一的
参数
被传递。这是
一个
Ajax 事件。 function (
XML
HttpRequest) {
this; // the options for this ajax request
}cache(true) 数据类型: Boolean
jQuery 1.2中新添加的
参数
, 如果设为false,则会强制
浏览器
不缓存请求的页面。
complete 数据类型: Function
当请求完成时执行的函数(在成功或失败之后执行)。这个函数有2个
参数
:
XML
HttpRequest对象和
一个
描述HTTP相应的状态字符串。 这是
一个
Ajax 事件。 function (
XML
HttpRequest, textStatus) {
this; // the options for this ajax request
}contentType("application/x-www-
form
-urlencoded") 数据类型: String
发送到服务器的数据的内容类型。默认是 "application/x-www-
form
-urlencoded", 适合大多数情况。
data 数据类型: Object,String
要发送给服务器的数据。如果不是字符串,那么它会被
转化
为
一个
查询字符串。在GET请求中它被添加到url的末尾。要防止这种自动
转化
,请查看processData选项。 数据对象必须是一组键/值对。如果键对应的值是数组,jQuery会将其值赋给同
一个
键属性。 例如 {foo:["bar1", "bar2"]} 变为 '&foo=bar1&foo=bar2'。
dataType( Intelligent Guess (
xml
or html)) 数据类型: String
期待由服务器返回值类型。如果没有明确指定,jQuery会根据实际返回的MIME类型自动的将response
XML
或responseText传递给success指定的回调函数。有效的类型(返回的类型的结果值会作为第
一个
参数
传递给success指定的回调函数)有: "
xml
": 返回
一个
可以由jQuery处理的
XML
文档。
"html": 返回文本
格式
的HTML代码。包括求值后的脚本标记。
"script": 将响应作为Javascript语句求值,并返回纯文本。不缓存此脚本,除非设置了cache选项。设置为"script"类型会将post方法转换为get方法。
"json": 将响应作为JSON求值,并返回
一个
Javascript对象。
"jsonp": 使用JSONP载入
一个
JSON代码块. 会在URL的末尾添加"?callback=?"来指明回调函数。(jQuery 1.2以上的版本支持)
"text": 文本
格式
的字符串
error 数据类型: Function
请求失败时执行的函数。函数具有3个
参数
:
XML
HttpRequest对象,
一个
描述产生的错误类型和
一个
可选的异常对象, 如果有的化。 这是
一个
Ajax 事件。function (
XML
HttpRequest, textStatus, errorThrown) {
// typically only one of textStatus or errorThrown
// will have info
this; // the options for this ajax request
}global(true) 数据类型: Boolean
是否为当前的请求触发全局AJAX事件处理函数,默认值为true。设置为false可以防止触发像ajaxStart或ajaxStop这样的全局事件处理函数。这可以用于控制多个不同的Ajax事件。
ifModified(false) 数据类型: Boolean
只有响应自上次请求后被修改过才承认是成功的请求。是通过检查头部的Last-Modified值实现的。默认值为false,即忽略对头部的检查
jsonp 数据类型: String
在jsonp请求中重新设置回调的函数。这个值用于代替'callback=?'中的查询字符串。'callback=?'位于get请求中url的末尾或是post请求传递的数据中。因此设置 {jsonp:'onJsonPLoad'} 会将 'onJsonPLoad=?' 传送给服务器。
processData(true) 数据类型: Boolean
在默认的情况下,如果data选项传进的数据是
一个
对象而不是字符串,将会自动地被处理和转换成
一个
查询字符串,以适应默认的content-type--"application/x-www-
form
-urlencoded"。如果想发送DOMDocuments,就要把这个选项设置为false。
success 数据类型: Function
当请求成功时调用的函数。这个函数会得到二个
参数
:从服务器返回的数据(根据“dataType”进行了
格式
化)和
一个
描述HTTP相应的状态字符串。这是
一个
Ajax 事件。 function (data, textStatus) {
// data could be
xml
Doc, jsonObj, html, text, etc...
this; // the options for this ajax request
}timeout 数据类型: Number
如果通过$.ajaxSetup设置了
一个
全局timeout,那么此函数使用
一个
局部timeout覆盖了全局timeout(单位为毫秒)。例如,你可以设置比较长的延迟给
一个
特殊的请求,同时其他所有请求使用1秒的延迟。有关全局延迟,见$.ajaxTimeout()。
type("GET") 数据类型: String
请求的类型 ("POST" 或 "GET"), 默认是 "GET"。注意:其他的HTTP请求方法,如PUT和DELETE,在这里也可以使用,当时它们并不被所有的
浏览器
支持。
url(The current page) 数据类型: String
请求发送的目标URL地址
username 数据类型: String
username可用于在响应
一个
HTTP连接时的认证请求。 实例
载入并执行
一个
JavaScript文件。
$.ajax({
type: "GET",
url: "test.js",
dataType: "script"
});保存数据到服务器,完成后通知用户。
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});取得
一个
HTML页面的最新版本。
$.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").append(html);
}
});同步载入数据。在执行请求的时候阻塞
浏览器
。这是在保证数据的同步性比交互更重要的情况下的一种更好的方法。
var html = $.ajax({
url: "some.php",
async: false
}).responseText;向服务器发送
xml
文档数据。通过设置processData选项为false,将数据自动转换为string的动作被禁止了。
var
xml
Document = [create
xml
document];
$.ajax({
url: "page.php",
processData: false,
data:
xml
Document,
success: handleResponse
});load( url, [data], [callback] )
参数
:
url (String): 装入页面的URL地址。
params (Map): (可选)发送到服务端的键/值对
参数
。
callback (Function): (可选) 当数据装入完成时执行的函数. function (responseText, textStatus,
XML
HttpRequest) {
this; // dom element
}返回值:
jQuery
装入
一个
远程HTML内容到
一个
DOM结点。 默认使用get方法发送请求,但如果指定了额外的
参数
,将会使用post方法发送请求。在 jQuery 1.2中,可以在URL
参数
中指定
一个
jQuery选择器,这会过滤返回的HTML文档,只取得文档中匹配选择器的元素。此语法类似于"url #some > selector"。
实例
载入文档的sidebar的导航部分到
一个
无序列表中。
$("#links").load("/Main_Page #p-Getting-Started li");将feeds.html文件载入到id为feeds的div中。
$("#feeds").load("feeds.html");同上,但是发送了附加的
参数
,并且在响应结束后执行
一个
自定义函数。
$("#feeds").load("feeds.php", {limit: 25}, function(){
alert("The last 25 entries in the feed have been loaded");
});jQuery.get( url, [data], [callback] )
参数
:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对
参数
callback (Function): (可选) 当远程页面装入完成时执行的函数 function (data, textStatus) {
// data可以是
xml
Doc, jsonObj, html, text, 等...
this; // the options for this ajax request
}返回值:
XML
HttpRequest
使用GET请求
一个
页面。
这是向服务器发送get请求的简单方法。它可以指定
一个
回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
实例
请求test.php页,忽略返回值.
$.get("test.php");请求test.php页并发送附加数据(忽略返回值).
$.get("test.php", { name: "John", time: "2pm" } );显示从test.php请求的返回值(HTML 或
XML
, 根据不同返回值).
$.get("test.php", function(data){
alert("Data Loaded: " + data);
});显示向test.
cgi
发送附加数据请求的返回值 (HTML 或
XML
, 根据不同返回值).
$.get("test.
cgi
", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});jQuery.getJSON( url, [data], [callback] )
参数
:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对
参数
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data will be a jsonObj
this; // the options for this ajax request
}返回值:
XML
HttpRequest
使用GET请求JSON数据。
在jQuery 1.2版本中,如果你指明了
一个
JSONP回调函数,你就可以从其它的域中载入JSON类型的数据,写法类似于 "myurl?callback=?" 。jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。注意: 请记住, that lines after this function will be executed before callback.
实例
从Flickr JSONP API中载入最新的四幅猫的图片
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&
form
at=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("
").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});从test.js载入JSON数据, 从返回的JSON数据读取name值。
$.getJSON("test.js", function(json){
alert("JSON Data: " + json.users[3].name);
});从test.js载入JSON数据, 传递
一个
附加
参数
,从返回的JSON数据读取name值。
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});显示向test.php发送请求的返回值 (HTML 或
XML
, 根据不同返回值).
$.getIfModified("test.php", function(data){
alert("Data Loaded: " + data);
});显示向test.php发送请求的返回值 (HTML 或
XML
, 根据不同返回值),提供了
一个
附加的
参数
.
$.getIfModified("test.php", { name: "John", time: "2pm" },
function(data){
alert("Data Loaded: " + data);
});列出从pages.php返回的查询结果,将返回的数组
转化
为一段HTML代码。
var id=$("#id").attr("value");
$.getJSON("pages.php",{id:id},dates);
function dates(datos)
{
$("#list").html("Name:"+datos[1].name+"
"+"Last Name:"+datos[1].lastname+"
"+"Address:"+datos[1].address);
}jQuery.getScript( url, [callback] )
参数
:
url (String): 装入页面的URL地址
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data应该是javascript
this; // the options for this ajax request
}返回值:
XML
HttpRequest
使用GET请求JavaScript文件并执行。
在jQuery 1.2前, getScript只能从页面所在的主机载入脚本,1.2中, 你可以从任何主机载入脚本。警告: Safari 2 及其更老的版本不能在全局上下文中正确识别脚本。如果你通过getScript载入函数,请保证设置
一个
延迟来执行这个脚本。
实例
我们动态的载入
一个
新的官方jQuery颜色动画插件,载入后绑定一些动画效果到元素上。
$.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
$("#go").click(function(){
$(".block").animate( { backgroundColor: 'pink' }, 1000)
.animate( { backgroundColor: 'blue' }, 1000);
});
});载入test.js JavaScript文件并执行。
$.getScript("test.js");载入test.js JavaScript文件并执行,当执行结束后显示一条警告信息。
$.getScript("test.js", function(){
alert("Script loaded and executed.");
});jQuery.post( url, [data], [callback], [type] )
参数
:
url (String): 装入页面的URL地址
Map(可选): (可选)发送到服务端的键/值对
参数
callback (Function): (可选) 当数据装入完成时执行的函数 function (data, textStatus) {
// data可能是
xml
Doc, jsonObj, html, text, 等...
this; // the options for this ajax request
}String $.postJSON = function(url, data, callback) {
$.post(url, data, callback, "json");
};返回值:
XML
HttpRequest
使用POST请求
一个
页面。
这是向服务器发送post请求的简单方法。它可以指定
一个
回调函数,在请求完成后执行(只有在请求成功时)。如果还需要设置error和success回调函数,则需要使用$.ajax。
ajaxComplete( callback )
参数
:
callback (Function): 要执行的函数 function (event,
XML
HttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
当
一个
AJAX请求结束后,执行
一个
函数。这是
一个
Ajax事件
实例
当AJAX请求完成时显示一条信息。
$("#msg").ajaxComplete(function(request, settings){
$(this).append("
Request Complete.
");
});ajaxError( callback )
参数
:
callback (Function): 要执行的函数 function (event,
XML
HttpRequest, ajaxOptions, thrownError) {
// thrownError only passed if an error was caught
this; // dom element listening
}返回值:
jQuery
当
一个
AJAX请求失败后,执行
一个
函数。这是
一个
Ajax事件.
实例
当AJAX请求错误时显示一条信息。
$("#msg").ajaxError(function(request, settings){
$(this).append("
Error requesting page " + settings.url + "
");
});ajaxSend( callback )
参数
:
callback (Function): 要执行的函数 function (event,
XML
HttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
在
一个
AJAX请求发送时,执行
一个
函数。这是
一个
Ajax事件.
实例
当AJAX请求发出后显示一条信息。
$("#msg").ajaxSend(function(evt, request, settings){
$(this).append("
});ajaxStart( callback )
参数
:
callback (Function): 要执行的函数 function () {
this; // dom element listening
}返回值:
jQuery
在
一个
AJAX请求开始但还没有激活时,执行
一个
函数。这是
一个
Ajax事件.
实例
当AJAX请求开始(并还没有激活时)显示loading信息。
$("#loading").ajaxStart(function(){
$(this).show();
});ajaxStop( callback )
参数
:
callback (Function): 要执行的函数 function () {
this; // dom element listening
}返回值:
jQuery
当所有的AJAX都停止时,执行
一个
函数。这是
一个
Ajax事件.
实例
当所有AJAX请求都停止时,隐藏loading信息。
$("#loading").ajaxStop(function(){
$(this).hide();
});ajaxSuccess( callback )
参数
:
callback (Function): 要执行的函数 function (event,
XML
HttpRequest, ajaxOptions) {
this; // dom element listening
}返回值:
jQuery
当
一个
AJAX请求成功完成后,执行
一个
函数。这是
一个
Ajax事件
实例
当AJAX请求成功完成时,显示信息。
$("#msg").ajaxSuccess(function(evt, request, settings){
$(this).append("
Successful Request!
");
});jQuery.ajaxSetup( options )
参数
:
Options: 用于Ajax请求的键/值对
为所有的AJAX请求进行全局设置。查看$.ajax函数取得所有选项信息。
实例
设置默认的全局AJAX请求选项。
$.ajaxSetup({
url: "/
xml
http/",
global: false,
type: "POST"
});
$.ajax({ data: myData });serialize( )返回值:
jQuery
以名称和值的方式连接一组input元素。返回值类似于: single=Single2&multiple=Multiple&multiple=Multiple3&radio=radio2 。在jQuery 1.2中。serialize方法实现了正确表单元素序列,而不再需要插件支持。
实例
连接表单元素的一组查询字符串,可用于发送Ajax请求。
function showValues() {
var str = $("
form
").serialize();
$("#results").text(str);
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();serializeArray( )返回值:
jQuery
连接所有的表单和表单元素(类似于.serialize()方法),但是返回
一个
JSON数据
格式
。
实例
从
form
中取得一组值,显示出来
function showValues() {
var fields = $(":input").serializeArray();
alert(fields);
$("#results").empty();
jQuery.each(fields, function(i, field){
$("#results").append(field.value + " ");
});
}
$(":checkbox, :radio").click(showValues);
$("select").change(showValues);
showValues();
大名鼎鼎的IBM公司 Ajax 培训资料
第 1 部分: Ajax 简介 Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界 面
转化
成交互性的 Ajax 应用
程序
。本系列的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的讨论 —— 使高效的 Web 开发成为现实。他还揭开了 Ajax 核心概念的神秘 面纱,包括
XML
HttpRequest 对象。 五年前,如果不知道
XML
,您就是一只无人重视的丑小鸭。十八个月前,Ruby 成了关注的中心,不知道 Ruby 的
程序
员只能坐冷板凳了。今天,如果想跟上最新的技术时尚,那您的目标就是 Ajax。 但是,Ajax 不仅仅 是一种时尚,它是一种构建网站的强大方 法,而且不像学习一种全新的语言那样困难。 但在详细探讨 Ajax 是什么之前,先让我们花几分钟了解 Ajax 做 什么。目前,编写应用
程序
时有两种基本的选择: 桌面应用
程序
Web 应用
程序
两者是类似的,桌面应用
程序
通常以 CD 为介质(有时候可从网站下载)并完全安装到您的计算机上。桌 面应用
程序
可能使用互联网下载更新,但运行这些应用
程序
的代码在桌面计算机上。Web 应用
程序
运行 在某处的 Web 服务器上 —— 毫不奇怪,要通过 Web
浏览器
访问这种应用
程序
。 不过,比这些应用
程序
的运行代码放在何处更重要的是,应用
程序
如何运转以及如何与其进行交互。桌面 应用
程序
一般很快(就在您的计算机上运行,不用等待互联网连接),具有漂亮的用户界面(通常和操作 系统有关)和非凡的动态性。可以单击、选择、输入、打开菜单和子菜单、到处巡游,基本上不需要等待。 另一方面,Web 应用
程序
是最新的潮流,它们提供了在桌面上不能实现的服务(比如 Amazon.com 和 eBay)。但是,伴随着 Web 的强大而出现的是等待,等待服务器响应,等待屏幕刷新,等待请求返回 和生成新的页面。 显然这样说过于简略了,但基本的概念就是如此。您可能已经猜到,Ajax 尝试建立桌面应用
程序
的功能 和交互性,与不断更新的 Web 应用
程序
之间的桥梁。可以使用像桌面应用
程序
中常见的动态用户界面和 漂亮的控件,不过是在 Web 应用
程序
中。 还等什么呢?我们来看看 Ajax 如何将笨拙的 Web 界面
转化
成能迅速响应的 Ajax 应用
程序
吧。 老技术,新技巧 在谈到 Ajax 时,实际上涉及到多种技术,要灵活地运用它必须深入了解这些不同的技术(本系列的头几 篇文章将分别讨论这些技术)。好消息是您可能已经非常熟悉其中的大部分技术,更好的是这些技术都很 容易学习,并不像完整的编程语言(如 Java 或 Ruby)那样 困难。 下面是 Ajax 应用
程序
所用到的基本技术: HTML 用于建立 Web 表单并确定应用
程序
其他部 分使用的字段。 JavaScript 代码是运行 Ajax 应用
程序
的核心代码, 帮助改进与服务器应用
程序
的通信。 DHTML 或 Dynamic HTML,用于动态更新表单。 我们将使用 div、span 和其他动态 HTML 元素来标 记 HTML。 请访问 Ajax 技术资源中心,这是有 关 Ajax 编程模型信息的一站式中 心,包括很多文档、教程、论坛、blog、 wiki 和新闻。任何新信息都能在这里 找到。 Ajax 的定义 顺便说一下,Ajax 是 Asynchronous JavaScript and
XML
(以及 DHTML 等)的缩写。这 个短语是 Adaptive Path 的 Jesse James Garrett 发明的(请参阅 参 考资料),按照 Jesse 的解释,这不 是 个首字母缩写词。 文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器 返回的
XML
。 我们来进一步分析这些技术的职责。以后的文章中我将深入讨论这些技术,目前只要熟悉这些组件和技术 就可以了。对这些代码越熟悉,就越容易从对这些技术的零散了解转变到真正把握这些技术(同时也真正 打开了 Web 应用
程序
开发的大门)。
XML
HttpRequest 对象 要了解的
一个
对象可能对您来说也是最陌生的,即
XML
HttpRequest。这是
一个
JavaScript 对象,创建 该对象很简单,如清单 1 所示。 清单 1. 创建新的
XML
HttpRequest 对象 [removed] var
xml
Http = new
XML
HttpRequest(); [removed] 下一期文章中将进一步讨论这个对象,现在要知道这是处理所有服务器通信的对象。继续阅读之前,先停 下来想一想:通过
XML
HttpRequest 对象与服务器进行对话的是 JavaScript 技术。这不是一般的应用程 序流,这恰恰是 Ajax 的强大功能的来源。 在一般的 Web 应用
程序
中,用户填写表单字段并单击 Submit 按钮。然后整个表单发送到服务器,服 务器将它转发给处理表单的脚本(通常是 PHP 或 Java,也可能是
CGI
进程或者类似的东西),脚本执 行完成后再发送回全新的页面。该页面可能是带有已经填充某些数据的新表单的 HTML,也可能是确认页 面,或者是具有根据原来表单中输入数据选择的某些选项的页面。当然,在服务器上的脚本或
程序
处理和 返回新表单时用户必须等待。屏幕变成一片空白,等到服务器返回数据后再重新绘制。这就是交互性差的 原因,用户得不到立即反馈,因此感觉不同于桌面应用
程序
。 Ajax 基本上就是把 JavaScript 技术和
XML
HttpRequest 对象放在 Web 表单和服务器之间。当用户填 写表单时,数据发送给一些 JavaScript 代码而不是 直接发送给服务器。相反,JavaScript 代码捕获表 单数据并向服务器发送请求。同时用户屏幕上的表单也不会闪烁、消失或延迟。换句话说,JavaScript 代 码在幕后发送请求,用户甚至不知道请求的发出。更好的是,请求是异步发送的,就是说 JavaScript 代 码(和用户)不用等待服务器的响应。因此用户可以继续输入数据、滚动屏幕和使用应用
程序
。 然后,服务器将数据返回 JavaScript 代码(仍然在 Web 表单中),后者决定如何处理这些数据。它可 以迅速更新表单数据,让人感觉应用
程序
是立即完成的,表单没有
提交
或刷新而用户得到了新数据。 JavaScript 代码甚至可以对收到的数据执行某种计算,再发送另
一个
请求,完全不需要用户干预!这就 是
XML
HttpRequest 的强大之处。它可以根据需要自行与服务器进行交互,用户甚至可以完全不知道幕后 发生的一切。结果就是类似于桌面应用
程序
的动态、快速响应、高交互性的体验,但是背后又拥有互联网 的全部强大力量。 加入一些 JavaScript 得到
XML
HttpRequest 的句柄后,其他的 JavaScript 代码就非常简单了。事实上,我们将使用 JavaScript 代码完成非常基本的任务: 获取表单数据:JavaScript 代码很容易从 HTML 表单中抽取数据并发送到服务器。 修改表单上的数据:更新表单也很简单,从设置字段值到迅速替换图像。 解析 HTML 和
XML
:使用 JavaScript 代码操纵 DOM(请参阅 下一节),处理 HTML 表 单服务器返回的
XML
数据的结构。 对于前两点,需要非常熟悉 getElementById() 方法,如 清单 2 所示。 清单 2. 用 JavaScript 代码捕获和设置字段值 // Get the value of the "phone" field and stuff it in a variable called phone var phone = document.getElementById("phone").value; // Set some values on a
form
using an array called response document.getElementById("order").value = response[0]; document.getElementById("address").value = response[1]; 这里没有特别需要注意的地方,真是好极了!您应该认识到这里并没有非常复杂的东西。只要掌握了
XML
HttpRequest,Ajax 应用
程序
的其他部分就是如 清单 2 所示的简单 JavaScript 代码了,混合有少 量的 HTML。同时,还要用一点儿 DOM,我们就来看看吧。 以 DOM 结束 最后还有 DOM,即文档对象模型。可能对有些读者来说 DOM 有点儿令人生畏,HTML 设计者很少使用 它,即使 JavaScript
程序
员也不大用到它,除非要完成某项高端编程任务。大量使用 DOM 的是 复杂 的 Java 和 C/C++
程序
,这可能就是 DOM 被认为难以学习的原因。 幸运的是,在 JavaScript 技术中使用 DOM 很容易,也非常直观。现在,按照常规也许应该说明如何使 用 DOM,或者至少要给出一些示例代码,但这样做也可能误导您。即使不理会 DOM,仍然能深入地探 讨 Ajax,这也是我准备采用的方法。以后的文章将再次讨论 DOM,现在只要知道可能需要 DOM 就可 以了。当需要在 JavaScript 代码和服务器之间传递
XML
和改变 HTML 表单的时候,我们再深入研究 DOM。没有它也能做一些有趣的工作,因此现在就把 DOM 放到一边吧
《
XML
实用大全》
第1章
XML
概览 本章将向读者介绍
XML
的基本知识以及概略地解释什么是
XML
以及如何使用
XML
。还要向读者说明如何将各种不同的
XML
表达式组合在一起,
XML
文档是如何创建的并如何向人们发送这种文档。 本章的主要内容包括: · 什么是
XML
为什么开发人员对
XML
感到激动
XML
文档的“生命” 相关的技术 1.1 什么是
XML
XML
代表Extensible M...
2020-09-05
python语言介绍(三)
CGI
CGI
目前由NCSA维护,NCSA定义
CGI
如下:
CGI
(Common Gateway Interface),通用网关接口,它是一段
程序
,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口。
CGI
程序
可以是Python脚本、Perl脚本、Shell脚本、C或者C++
程序
等。 服务器 在你进行
CGI
编程前,确保您的Web服务器支持
CGI
及已经配置了
CGI
的处理
程序
。 所有的HTTP服务器执行
CGI
程序
都保存在
一个
预先配置的目录。这.
python 简单网页_用Python写
一个
简单的html页面
原博文2020-05-13 17:28 −一、使用python写
CGI
程序
CGI
(Common Gateway Interface)也叫通用网关接口,它是
一个
web服务器主机提供信息服务的标准接口,只要遵循这个接口,web服务器就能获取客户端
提交
的信息,转交给服务端的
CGI
程序
进行处理,然后将处理结果返回给客户端。
CGI
通讯是由两部分组成...01165相关推荐2019-12-22 19:04 −...
XML/XSL
8,906
社区成员
22,678
社区内容
发帖
与我相关
我的任务
XML/XSL
XML/XSL相关问题讨论专区
复制链接
扫一扫
分享
社区描述
XML/XSL相关问题讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章