The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ Js导入JavaScript ]

为了更好地访问我们系统提供的JavaScript库,我们提供给了Javascript的方式来导入。当然,你也可以使用我们前面的提供Import标签来导入。

实现原理,我们通过Javascript利用框架提供SOAP API接口,远程请求Package中的 importJsClass方法来导入我们的Javascript文件。这里说起来
有一点空洞,我们将通过图文的方式为你表达清楚。


我们首先在我们系统的Js库中新建一个Test.class.js( D:\phpcondition\htdocs\doyouhaobaby\DoYouHaoBaby\LibCom\Js\Test.class.js )的文件,这个文件用来测试我们是否

导入成功了。

  1. /**  
  2.  * 我是一个测试方法( 我用来测试,JS 导入JS )   
  3.  *  
  4.  * @return void  
  5.  */  
  6. function Test( sString ){   
  7.     
  8.      alert( '我是一个测试方法( 我用来测试,JS 导入JS )\n 我的参数的值sString 的值为:'+sString);   
  9. }   
  10.   
  11. Test( '-- The DoYouHaoBaby Framework --' );  


如图:






我们在模板文件中写下的如下的代码:
  1. <import file="Js.Dyhb#package" />   
  2. {script}   
  3. Dyhb.Script.Import( 'Test' );   
  4. {/script}  


程序编译后的PHP 代码如下:
  1. <?php !defined('DYHB_PATH') && exit; /* DoYouHaoBaby Framework 模板缓存文件 生成时间:2002-01-23 07:19:22  */ ?>   
  2. <script type="text/javascript" src="/doyouhaobaby/DoYouHaoBaby/LibCom/Js/Dyhb.package.js"></script>   
  3. <script type="text/javascript">   
  4. Dyhb.Script.Import( 'Test' );   
  5. </script>  

如图:



程序运行后的结果如下:

如图:



分析:根据结果来看,我们成功了。这里,我把原理告诉大家。首先,我们使用这句代码:
  1. Dyhb.Script.Import( 'Test' );  

此文件将会请求一个URL为

如图:


../?c=ssmi&a=index&class=Package&method=importJsClass&param_soap1=Test

(注意:你可以查看Javascript的源代码处看,我这里截取一个图片给你看看,请看下面。)

如图:


程序重新组装成可用URL 为:http://localhost/doyouhaobaby/TestApp/index.php/?c=ssmi&a=index&class=Package&method=importJsClass&param_soap1=Test

程序URL解析器通过根据系统的URL模式,默认pathinfo重定向为:
http://localhost/doyouhaobaby/TestApp/index.php/ssmi/index/class/Package/method/importJsClass/param_soap1/Test

这里的URL的意思,访问 ssmi控制器的index方法,并戴上三个参数,method=importJsClass ,class = Package ,附加参数param_soap1 =Test


然后,系统执行soap 的 ssmi接口控制器,并回调类Package的方法 importJsClass ,并带上参数 param_soap1 =Test


如图:



程序最后会再次重定向为:

http://localhost/doyouhaobaby/DoYouHaoBaby/LibCom/Js/Test.class.js

如图:


好吧,你发现了吧,本文结束。