先找个借口【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?:好早就想分析下AjaxPro的代码实现机制了,一直苦于没时间,现在嘛总算有那么丁点了,开篇了,慢慢分析……

以一个最简单的例子开始:
点击一个客户端button,触发一个javascript函数,执行一个只有一个string参数的服务端方法,返回一个处理过的string,处理方法是将传入的string变成“Hi”+string +“!”;够简单了,为了是不希望罗嗦的代码影响简单的分析;
所有代码如下:
>

Test.aspx.cs
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?public partial class Test : System.Web.UI.Page
}

AJAXDemo.Examples.Test
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?using System;
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
using AjaxPro;
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
namespace AJAXDemo.Examples.Test
}

1.首先我们看AjaxPro在页面上给我们生成了什么?
Test[1]
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
<html xmlns="http://www.w3.org/1999/xhtml" >
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
<head><title>
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?    无标题页
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
</title>
>

一定要注意这几行
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?<script type="text/javascript" src="/AJAXDemo.2/ajaxpro/prototype.ashx"></script>
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
<script type="text/javascript" src="/AJAXDemo.2/ajaxpro/core.ashx"></script>
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
<script type="text/javascript" src="/AJAXDemo.2/ajaxpro/converter.ashx"></script>
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
<script type="text/javascript" src="/AJAXDemo.2/ajaxpro/AJAXDemo.Examples.Test.TestMethod,App_Code.urx4hqkg.ashx"></script>

通过使用http://localhost:3578/AJAXDemo.2/ajaxpro/prototype.ashxhttp://localhost:3578/AJAXDemo.2/ajaxpro/core.ashx不难发现,其中前面两个是源代码中带的两个js文件(core.js和prototype.js)转化出来的,基本内容也跟原来的文件一样,而converter.ashx和AJAXDemo.Examples.Test.TestMethod,App_Code.urx4hqkg.ashx里面有什么呢?看下面:
AJAXDemo.Examples.Test.TestMethod,App_Code.urx4hqkg.ashx
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?addNamespace("AJAXDemo.Examples.Test");
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?AJAXDemo.Examples.Test.TestMethod_class 
= Class.create();
 AJAXDemo.Examples.Test.TestMethod_class();

converter.ashx

 

【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?addNamespace("Ajax.Web");
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?
【AjaxPro实现机制浅析一】AjaxPro内部为我们做什么工作?Ajax.Web.NameValueCollection 
= function()

正因为是有了上面四个ashx文件我们的
function doTest() 
[未完待续]

相关文章: