AJAX www.shengfang.orgAJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。它有机地包含了以下几种技术: Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; www.shengfang.org 使用 XMLHttpRequest 进行异步数据查询、检索; 使用 JavaScript 将所有的东西绑定在一起。 类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。 AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。[1] <? require("Sajax.php"); www.shengfang.org function multiply($x, $y) { print_r($_POST); return $x * $y; } sajax_init(); www.shengfang.org // $sajax_debug_mode = 1; sajax_export("multiply"); www.shengfang.org sajax_handle_client_request();?> <html><head> <title>Multiplier</title> <script> <? sajax_show_javascript(); ?> var xx; function do_multiply_cb(z) { alert(z); xx = z; } function do_multiply() { // get the folder name var x, y; x = document.getElementById("x").value; alert(x); y = document.getElementById("y").value; alert(y); x_multiply(x, y, do_multiply_cb); alert(xx); } </script> </head><body> www.shengfang.org <input type="text" name="x" id="x" value="2" size="3"> * <input type="text" name="y" id="y" value="3" size="3"> = <input type="text" name="z" id="z" value="" size="3"> <input type="button" name="check" value="Calculate" onclick="do_multiply(); alert(xx); return false;"> </body></html> 实验了XAJAX,觉得这个比较简单一些 SAJAX,实验了一把,觉得还可以,但是有个不好的地方。我的应用场合是修改的时候,希望能够先检验用户两次输入的密码是否一致匹配、输入的旧密码是否正确,这两者校验之后再提交数据库更新 www.shengfang.org 问题 1、通过ALERT,发现由于AJAX是JS后台传输数据到服务器端,而这一个操作是异步的,所以没有办法等到它的返回值再作下一步操作 www.shengfang.org 2、而此时ONCLICK已经没有了SUBMIT事件,所以如果想用$_POST也是不行的,除非把所有内容用 document.getElementById('colorselect').value 取出来,然后全部传过去,这个也太可怕了。 如果想判断完毕合法性后在提交 FORM.SUBMIT(),由于第一条,异步返回结果,所以这时候是无法判断的 所以这个东西可能 www.shengfang.org 还要一个问题就是,对于我这种极端资源分子,极端简单主义信徒,我在IE安全里面屏蔽了所有的控件执行下载等操作,所以,所有有复杂的JAVASCRIPT应用的地方我都没有办法访问 www.shengfang.org 字体:大 中 小 |