Titanium Developer学习笔记(二)

  tr
  PHP相关
  2010-11-05
  增加更多TAG »
  3,723次

本文收录于[go4pro.org]

这两天主要是学习如何将我之前编写的一些jQuery的demo迁移到Titanium里去,采用的编程模式是HTML+CSS+PHP+javascript (jQuery),而不是Titanium本身的UI。

总体来说,过程不复杂,也很直观。大部分代码我只是修改了CSS文件和jQuery文件的位置就可以直接使用了。在这个过程中,有几个地方是我原来认为没有问题,却出了问题的。

首先是连接远程的MySQL。我用的主机是BlueHost,出于安全考虑,BH的主机缺省是不提供远程MySQL的连接的,需要用户加入可信任的IP地址(或地址段)后才可以。

BH提供了一个URI探测客户端的IP,同时在BH控制页面也会探测IP。我发现的第一个问题就是:这两个被探测出来的IP不仅不一样,而且是不对的!如果填入这两个IP,远程连接时还是报错!最终正确的IP是我的路由给出的IP。终于解决了这个问题。

第二个问题就是在Titanium里开始MySQL的连接。之前,我已经在PHP脚本状态编写了一些测试脚本来测试连接,并证明是可以的。但是同样的代码,在Titanium里进行编译并执行后,出现了如下的警告:

Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter than expected….

Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication….

Warning: mysql_select_db() expects parameter 2 to be resource, boolean given….

这些问题的描述其实已经很直观了。在Google中搜索后发现,这个问题的解决需要在我的服务器端对MySQL服务进行配置,当然这个配置在目前我使用的BH主机下是无法实现的。我判断是因为Titanium在编译时使用了一些不正确的参数,并在Titanium论坛里进行了提问,但是到目前还没有回答。

我只能进行另外一种——可能是更正确,因为有“云”的味道——的做法,就是将数据提供部分抽取出来成为一个独立的脚本,然后在客户端脚本中获取返回的数据。具体代码就不提供了,因为不是很困难的代码。

我之所以不用jQuery的json方法获得这些数据,是因为我的客户端PHP脚本需要明确的获得数据后再进行处理。我不能冒异步的风险。


除非另有来自Go4Pro.org或原作者的显式声明,本站点所有文章都按照知识共享许可协议知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议进行许可。

Go4Pro.org,V3.0,2009-2014。本站点采用SymfonyBootstrapTwig等技术开发。