[技术交流]Ajax & PHP without using the XmlHttpRequest Object
|
 

|
[技术交流]Ajax & PHP without using the XmlHttpRequest Object
最近在网上发现一篇文章,讨论如何不采用XmlHttpRequest对象进行Ajax应用.
地址如下:
http://www.phpit.net/article/ajax-php-without-xmlhttprequest/1/
注意:有三页哦,不要看完一页就以为写完了
本来打算翻译给大家的,但是翻译完一页发现自己的翻译能力真不怎么样,还不如直接看代码直观.
在这里把默默翻译的最前面的那段放出,希望可以让大家理作者的意图.
"
Ajax技术是去年的最大发现之一,恰恰就像是Web 2.0一样,它也将会成为真正的流行词。
显然,Ajax可以用来做许多事情,它也会加快WEB应用的速度。Ajax已经应用在许多超级热门的站点中,最显著地是Gmail,其他的像 Ta-da List 或 Flickr也在使用它。甚至是MicroSoft 也在传出了AJax的风闻,事实上它又正在接近着WEB基本应用.
但是大多数流行的Ajax实现程序都有一个问题:它有一个附属物,也就是XmlHttpRequest对象。大多数现代浏览器,比如FireFox,在内部支持着这个对象,但是比较早的一些浏览器,比如IE6,它本身就不支持这个对象,幸运的是,IE6虽然不支持它,但是它构建在一个ActiveX控件上,意思是说,你的访问者会接到一个十分难看的关于这个ActiveX控件存在着危险的的信息,或者有时候,它正好根本无法运行。
这次辅导中,我会告诉你如何完全不需要XmlHttpRequest对象就使用Ajax.
"
原文:
"
Ajax is one of the biggest 'discoveries' in the past year, and it has become a real buzzword, just like Web 2.0. Admittedly, Ajax can be used for a lot of things, and it really does speed up web applications. Already Ajax is used by many highly popular websites, most notably GMail, but other's like Ta-da List or Flickr also use it. Heck, even Microsoft has gotten wind of the Ajax buzz, and is actually moving towards web-based applications as well.
But there is one problem with most of the current implementations of Ajax: it has one dependency, and that is the XmlHttpRequest object. Most modern browser, like Firefox, have inbuilt support for this object, but older browsers, like Internet Explorer 6, don't have native support for this object. Luckily, IE 6 does support it, but it's built in as an ActiveX control, which means your visitors get an ugly warning message about the possible danger of an ActiveX control, or in some cases it just doesn't work at all.
In this tutorial, I will show you how to use Ajax without even having to use the XmlHttpRequest object.
"
翻译的的确不怎么样,让大家见笑了,其实咱们从代码中就可以理解作者的意图,这也许就是程序员之间的心灵相通吧!
最近不知道怎么搞的,根本无法在论坛发帖,大家看到的这个帖子是我发了十多次之后才成功的. |
|
|
|
|
|
|
|
|

|
2#
发表于 2006-1-27 11:25
| 只看该作者
我在想一个问题:
假如我长时间的用ajax这个方法,老是在body后面appendChild,会不会影响客户浏览器的内存占用。
如果能有个方法,把不用的东西removeChild就好了,就当作垃圾回收好了。
[ 本帖最后由 默默 于 2006-1-28 12:54 编辑 ] |
|
|
我觉得我行,可是……,看来行不行还是别人说了算。
寻找代码中的“神之一行”
|
|
|
|
|
|

|
3#
发表于 2006-1-27 11:51
| 只看该作者
| 哦哟,发现一个大问题:如果getfile.php里面指定自身,不知道会不会死循环,系统会不会崩溃? |
|
|
我觉得我行,可是……,看来行不行还是别人说了算。
寻找代码中的“神之一行”
|
|
|
|
|
|

|
4#
发表于 2006-1-27 12:11
| 只看该作者
有点看懂了,我来简单解释一下
page.html:
里面有一个<div id="divname">...</div>
包含engine.js
有一个engine.js里面的某个函数入口,函数两个参数:一个php程序的url(假如叫做data.php),url上面可以跟上需要的php参数,一个“divname”
engine.js:
将关于data.php的那个url放入getfile.php的url参数中,divname也作为一个参数传给getfile.php,做出来一个url(假如叫做getfileurl)
在body上增加一个子节点:<script type="text/javascript" src="(getfileurl)" />
getfile.php:
用file_get_contents得到data.php的内容,转换成js格式的datajs
el = document.getElementById('<?php echo $divname; ?>');
el.innerHTML = '<?php echo $datajs; ?>';
data.php:
可以有多个,需要的时候按需要调用不同的。
本身可以是一个页面,可以单独调试的。
返回合法的显示html code。即这段code就是divname的code。
代码见附件。 |
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
|
|
我觉得我行,可是……,看来行不行还是别人说了算。
寻找代码中的“神之一行”
|
|
|
|
|
|
      
 
|
8#
发表于 2007-5-7 23:49
| 只看该作者
这什么时候发的 都翻上来了 真强
说白了
这就是在AJAX还没出来前 大家使用的一些HACK方法撒
它就是外部链接一个动态变化的js文件
<script>标签外链的地址改变,这段脚本就会被读入并执行
缺点:会有很明显的闪动
类似这样不用xmlhttprequest的hack方法还有很多撒
比如很多AJAX书上都列举过的用框架的方法 |
|
|
lightinthebox.com急招javascript程序员,待遇优厚
公司为外贸b2c界领头羊,以人为本,待遇优厚。
老总郭去疾,谷歌中国四大创始人之一,前google首席战略官
重点精通extjs和jquery框架就行了!
过来纯写javascript都行
懂php,flex的优先(非必需)
有意者直接联系本人,或者email:jidixuelang({AT})gmail.com
|
|
|
|
|