1. 首先下载 dwr.jar包,下载地址: http://directwebremoting.org/dwr/
2. 在应用中引入 dwr.jar包
3. 修改web.xml配置文件
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>
org.directwebremoting.servlet.DwrServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
......
ajax 在目前 web 领域已广泛应用,其真正核心只不过是一个封装好了的 js 库。最五花八门的莫过于 asp.net 的控件,我个人认为 ajax 只是一个轻量级的东西,根本没有必要将它写成服务器组件,如 ajax.net、AjaxControlToolkit 等。所以我一直视这些组件为垃圾。。。
以下说明我为什么不认同 ajax 的相关组件:
1、将 ajax 封装得太死,出现问题难于调试;
2、组件过于臃肿,太多没有用的功能;
3、依赖性太强,少一样不可,如 webform;
传统的 ajax 应用到项目中,会出现由于项目的 ajax 应用太多,服务端的 ajax 响应函数难于管理,我们到底要把这些响应函数部署在什么位置?
假如
index.aspx 里有三个 ajax 响应函数,我们可以把这三个响应函数放在 index.aspx 中,并于 Page_Load 事件中根据参数不同来调用这些函数。
index.aspx 里还使用了 abc.ascx,这个控件里面也用到了 ajax,那么 abc.ascx 里的响应函数又应该放在哪里?index.aspx 中吗?如果 index2.aspx 中也用到了 abc.ascx,难道还要复制 index.aspx 的处理函数到 index2.aspx,这样肯定不行;
我们可以新建一个 ajax.aspx 来处理所有的 ajax 响应,php/as ......
ajax 在目前 web 领域已广泛应用,其真正核心只不过是一个封装好了的 js 库。最五花八门的莫过于 asp.net 的控件,我个人认为 ajax 只是一个轻量级的东西,根本没有必要将它写成服务器组件,如 ajax.net、AjaxControlToolkit 等。所以我一直视这些组件为垃圾。。。
以下说明我为什么不认同 ajax 的相关组件:
1、将 ajax 封装得太死,出现问题难于调试;
2、组件过于臃肿,太多没有用的功能;
3、依赖性太强,少一样不可,如 webform;
传统的 ajax 应用到项目中,会出现由于项目的 ajax 应用太多,服务端的 ajax 响应函数难于管理,我们到底要把这些响应函数部署在什么位置?
假如
index.aspx 里有三个 ajax 响应函数,我们可以把这三个响应函数放在 index.aspx 中,并于 Page_Load 事件中根据参数不同来调用这些函数。
index.aspx 里还使用了 abc.ascx,这个控件里面也用到了 ajax,那么 abc.ascx 里的响应函数又应该放在哪里?index.aspx 中吗?如果 index2.aspx 中也用到了 abc.ascx,难道还要复制 index.aspx 的处理函数到 index2.aspx,这样肯定不行;
我们可以新建一个 ajax.aspx 来处理所有的 ajax 响应,php/as ......
大家好,最近使用jquery的ajax功能,但是发现$.ajax()方法不能提交到后台,我是用的是IE7,
其他方法如get和post没有试过,但由api所知底层都是用ajax方法来实现的。
通过查看源码发现
// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
// This function can be overriden by calling jQuery.ajaxSetup
xhr:function(){
return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
},
以下是这个jquery的源码的版本声明
/*!
* jQuery JavaScript Library v1.3.1
* http://jquery.com/
*
* Copyright (c) 2009 John Resig
* Dual licensed under the MIT and GPL licenses.
* http://docs.jquery.com/License
*
* Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)
* Revision: 6158
*/
上述xhr的创建代码位置大概是行数为3259的位置,
通过一个html打印“window.ActiveXObject ”的结果可以知道IE6、IE7和IE8都是返回的t ......
<script type="text/javascript">
function AjaxFunction()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e ......
1\引用ajax.dll或者ajaxpro.dll到vs2005工程中
在web.config文件中的<system.web>加入ajax设置
<httpHandlers>
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
</httpHandlers>
2\编写ajax代码
class _Default
{
[AjaxPro.AjaxMethod] //是定义此方法为Ajax可调用的方法,是必须要注明的
public string SetTb(string name)
{
return name;
}
}
3\页面加载中 注册AJAX可调用的类的名称
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeF ......
function ImportRun()
{
if(document.all.Content.children.length>0)
{
var oTable=document.all.Content.children(0);
var oFldInfo=new Array();
var oSendDom=CreateXmlDom("<dl/>");
if(oTable.tagName=="TABLE")
{
var oHeadRow=oTable.rows(0);
for(var k=0;k<oHeadRow.cells.length;k++)
{
oFldInfo.push(oHeadRow[k].innerText);
}
for(var i=1;i<oTable.rows.length;i++)
{
oHeadRow=oTable.rows(i);
&n ......
function ImportRun()
{
if(document.all.Content.children.length>0)
{
var oTable=document.all.Content.children(0);
var oFldInfo=new Array();
var oSendDom=CreateXmlDom("<dl/>");
if(oTable.tagName=="TABLE")
{
var oHeadRow=oTable.rows(0);
for(var k=0;k<oHeadRow.cells.length;k++)
{
oFldInfo.push(oHeadRow[k].innerText);
}
for(var i=1;i<oTable.rows.length;i++)
{
oHeadRow=oTable.rows(i);
&n ......