浏览模式: 标准 | 列表
昨天我举了个用 PHPRPC 实现 Ajax 级联下拉菜单 的例子,那个例子中我们重点要演示的是用 PHPRPC 实现 Ajax 效果是多么的简单。今天我们这个例子主要演示用 PHPRPC 内置的安全加密机制来实现安全登录是多么简单。当然它同样可以用于密码设置、其它关键保密数据的传输等领域。

» 阅读全文

在做 ajax 编程时,我们常常需要将 xmlhttp 获取到的页面内容通过 innerHTML 来赋给某个容器(比如 div、span 或者 td 等),但是这里存在一个问题,就是我们将要赋给 innerHTML 的页面内容如果包含有脚本程序,这些脚本程序不管是外部脚本,还是内部脚本,可能(1)都不会被执行。这个问题在某些时候微不足道,甚至可以忽略,但有些时候,这个问题就非常严重,它很可能让我们的程序得不到预期的结果。在本文中我们就来解决这个问题。

2006-6-4 更新:

修正了插入到 innerHTML 中的脚本无法获取插入到 innerHTML 中对象的问题。(感谢网友 DE 的提醒)。
增加了对同一容器中内容设置的共享锁,使得连续设置同一个容器内的时,不会再发生冲突。(感谢新加坡网友 Jason Li 的提醒)。

演示程序地址:Demo

» 阅读全文

今天在 Google 上无意中搜索到 Windows Moblie IE 也支持 XMLHttp 对象,还可以做 Ajax 编程。 于是按照文中所说,测试了一下最新版的 PHPRPC,居然最新版的 PHPRPC 也支持 Windows Mobile IE,不过只有 phprpc_ajax_client.js 这个版本支持,那个纯 Javascript 的不支持,所以打算下一个版本中将这两个版本合并成一个,根据用户请求(是否跨域)和浏览器(是否支持 XMLHttp 或 XmlHttpRequest)来自动选择采用哪个,这样的话,就可以适用于更多的浏览器了。

用 PHPRPC 开发 Windows Mobile IE 上的 Ajax 程序跟开发 PC 版 IE 上的 Ajax 程序没什么区别,区别不在于 PHPRPC 的使用上,而在于 DOM 对象的应用上,如果希望 Windows Mobile 2003 上的 IE 支持 Ajax 编程的话,那么注意不要用 document.getElementByID,这个函数不管用,document.all 也不管用,当然也不用考虑 prototype.js 中的 $ 函数了,那个更不管用。对于表单元素,你只能用 document.forms[’formname’] 来先获取表单,formname 是表单中 name 属性的值。然后再通过 document.forms[’formname’].formelementname 来获取表单中的元素,formelementname 是表单元素的 name 属性的值,注意这里获取表单元素用的是 name 属性而不是 id 属性,如果只定义了 id,是获取不到该元素的,当然为了兼容其它浏览器,你可以将 name 和 id 都定义为相同的值,注意不要用 name 作元素值(或其它属性名或方法名),否则会造成脚本执行错误(Windows Mobile 2003 的 IE 上是没有 Debug 的,错了也看不到提示信息,但是会停止执行)。其它非表单元素可以直接用 id 的值来获取该元素,只有 div 和 span 元素可以使用 innerText 和 innerHTML 属性,其它的元素没有该属性。

Windows Mobile 5 IE 中有所改进,你可以用 document.all 来获取所有的元素(包括表单元素),并且所有的元素都支持 innerText 和 innerHTML 属性,但是如果要开发兼容 Windows Mobile 2003 IE 的程序,最好还是不要用这些特性。

下面的地址是用 PHPRPC 做的支持 Windows Mobile 2003 IE 和 Windows Mobile 5 IE 的 Ajax 演示程序,大家会发现用 PHPRPC 来做这个是多么的简单。当然,等我把 phprpc_ajax_client.js 和 phprpc_client.js 合并以后,开发兼容各种浏览器的 Ajax 程序就更简单了。这个工作近期就会完成了,大家就拭目以待吧。,目前,20060528 及其之后的版本已经将 phprpc_ajax_client.js 和 phprpc_client.js 合并,现在编写支持 Windows Mobile 2003 IE 的 Ajax 程序跟 PC 版本已经基本上没有什么区别了。

演示程序地址:用 PHPRPC 作的支持 Windows Mobile 2003 IE 和 Windows Mobile 5 IE 的 Ajax 演示程序

» 阅读全文

今天为了测试程序兼容性,上 Opera 网站下载了一个 Opera 浏览器,同时发现 Opera 网站上提供了一个 Opera Mini 浏览器的模拟器,因为我的手机太老了,不支持 java 程序,所以只好拿这个模拟器来过过瘾。 当然第一件事情就是试试用这个 Opera Mini 模拟器浏览我的网站看看效果咯,发现支持的非常好!最大的惊喜是,发现 Opera Mini 竟然连我的 JavaScript 实现的 PHPRPC 客户端都支持,而且支持的非常好!而 Ajax 那个实现因为 Opera Mini 缺少 XMLHttpRequest 对象,所以不支持。也就是说如果以后要做 Ajax 效果的网站或者 Web 应用,用 JavaScript 实现的 PHPRPC 客户端兼容性会更好!

» 阅读全文

在 PHP 中本身带有一个用 C 语言实现的 xmlrpc 扩展,叫 xmlrpc-epi。因为它是用 C 语言实现的,所以从速度上来说比用 PHP 实现的那些 xmlrpc 扩展要快的多。但是在实际应用中却发现很少有人用这个扩展,大都是用 PHP 脚本实现的 xmlrpc 的扩展。原因可能有以下两点:一是这个扩展需要在服务器上打开,如果没有服务器操作权限,使用这个扩展就不现实了。第二个原因就是这个扩展在 PHP 手册中的说明太少了,而且提供的函数都很基础,要使用的话就很麻烦了。针对第二个问题,我对这个扩展进行了封装,将它封装成了3个 类:xmlrpc_error、xmlrpc_client 和 xmlrpc_server。当然最主要的是后两个类,即 xmlrpc_client 和 xmlrpc_server。这两个类大大简化了创建 xmlrpc 客户端和服务器的步骤。

2006年1月11日 更新

修正了某些非标准端口的服务器上指定相对路径进行调用的错误。

2006年1月6日 更新

增加了对 PHP5 的支持。

» 阅读全文