源码下载

1.配置文件设置:

<httpHandlers>

<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>

</httpHandlers>

2.编写自定义方法(可选,但用这个方法性能可以提高10倍左右,原来注册要300ms,优化后只要10-15ms)

AjaxPro.Utility.RegisterTypeForAjax这个方法主要是生成4个《script》我们这里用手动生成这些字符串并加载到head标签中,这样就提高了速度,经测试有效

    

    public static void RegAjax(HtmlHead Header)
        {
            // 用来代替 AjaxPro.Utility.RegisterTypeForAjax(Type type);方法     
            Literal l = new Literal();
            l.Text = "\n<script type=\"text/javascript\" src=\"/ajaxpro/prototype.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/core.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/converter.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/fisha.DAL.PersionDao,fisha.ashx\"></script>\n";
            Header.Controls.Add(l);
        }

//fisha.DAL.PersionDao 用来存方[AjaxPro.AjaxMethod]的类名,命名空间+类名
//fisha.ashx 中的fisha为程序集的名称

3.编写服务器端方法

namespace fisha.DAL
{
    public class PersionDao
    {
        public DataTable GetTable()
        {
            DataTable dt = new DataTable("persion");
            DataColumn dc1 = new DataColumn("name", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("age", Type.GetType("System.Int16"));
            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);

//以上代码完成了DataTable的构架,但是里面是没有任何数据的
            for (int i = 0; i < 10; i++)
            {
                DataRow dr = dt.NewRow();
                dr["name"] = "小小";
                dr["age"] = 10;
                dt.Rows.Add(dr);
            }
            return dt;
        }

[AjaxPro.AjaxMethod]
        public IList<MyClass> GetList()
        {
            DataTable tab_data = GetTable();
            IList<MyClass> myClassList = new List<MyClass>();
            if (tab_data.Rows.Count > 0)
            {
                for (int i = 0; i < tab_data.Rows.Count; i++)
                {
                    DataRow dr = tab_data.Rows[i];
                    MyClass item = new MyClass { Name=dr["name"].ToString(), Age=Convert.ToInt16(dr["age"].ToString())};
                    myClassList.Add(item);
                }
            }
            return myClassList;
        }
    }

public class MyClass
    {
        private string name = string.Empty;
        private int age = 0;

public string Name
        {
            get { return name; }
            set { name = value; }
        }

public int Age
        {
            get { return age; }
            set { age = value; }
        }
    }
}

4.新建一个aspx页面 test.aspx

===test.aspx.cs代码==


public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            BasicDao.RegAjax(Header, typeof(fisha.DAL.PersionDao)); 
            //用自定义的方法,向客户端注册脚本
        }
    }

===test.aspx代码==

<script language="javascript" type="text/javascript" defer="defer"> 
    function ShowList()
    {
        var res=fisha.DAL.PersionDao.GetList().value;
        var tab=document.getElementById("tab");
        var tblHtml = "";
        if(res)
        {
            //res是服务器返回的一个List<MyClass>集合
            for(var i=0;i<res.length;i++)
            {
                tblHtml+=res[i].Name+"."+res[i].Age+"<br/>";
                //从上面可以看出可以直接调用List<City>集合中的元素和它们的属性
            }
        }
        tab.innerHTML=tblHtml;
    }
</script>

<a href="javascript:ShowList();void(0);">here</a>
    <div id="tab">
    </div>

 public static void RegAjax(HtmlHead Header,Type type)
        {
            // 用来代替 AjaxPro.Utility.RegisterTypeForAjax(Type type);方法
            string assemblyName = type.FullName + "," + type.Assembly.FullName.Substring(0, type.Assembly.FullName.IndexOf(","));
            if (type.Assembly.FullName.StartsWith("App_Code."))
                assemblyName = type.FullName + ",App_Code";
            Literal l = new Literal();
            l.Text = "\n<script type=\"text/javascript\" src=\"/ajaxpro/prototype.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/core.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/converter.ashx\"></script>\n"
            + "<script type=\"text/javascript\" src=\"/ajaxpro/" + assemblyName + ".ashx\"></script>\n";
            Header.Controls.Add(l);
        }

引用:http://www.cnblogs.com/ie421/archive/2008/07/27/1254208.html#1428753

转载于:https://www.cnblogs.com/chencidi/archive/2010/05/11/1732993.html

提交 AjaxPro加载的速度相关推荐

  1. ExtJS表单提交与加载全攻略

    ExtJS用formPanel来做为表单元素的容器.默认情况下,是使用Ajax异步提交.接下来,对formPanel的提交跟加载,做个小总结. 先来看布局代码 1 var frm  2 Ext.onR ...

  2. ajax提交时“加载中”提示的处理方法

    方法1:使用ajaxStart方法定义一个全局的"加载中..."提示 $(function(){     $("#loading").ajaxStart(fun ...

  3. 网站加载图片速度提升

    发现网站加载图片速度很慢,于是尝试去找了一下经济又高效的加速方案. 基本分为三种:提升服务器带宽.OSS云存储和CDN加速.OSS的基础上还能进一步用CDN加速,不过费用就要进一步提升了. 1.提升服 ...

  4. 网站优化第一次网页加载的速度的办法与思路。

    网站重新开发了一次,第一次部署到测试网络,访问速度很慢,差不多第一次加载得需要40秒,太慢了,这里简单总结一下. 当然,还有一些无用的.MAP文件都可以删除,图片可以在线压缩一下,代码可以压缩一下,避 ...

  5. android加载h5速度慢的解决方案,WebView优化提高H5加载速度方案

    WebView优化提高H5加载速度方案 WebView加载H5经历的过程图示 上图体现的是用户打开一个H5页面,经历的过程与代码内部所作的事情的对应关系.javascript 用户:无感知(WebVi ...

  6. 记录一次wordpress网站速度优化过程,看我如何有效提升wordpress加载打开速度

    如何提升wordpress站点速度 简介 分析 具体优化步骤 总结 简介 共读书房是国内非常有影响力的一家线下阅读品牌,共读书房官方网站采用了wordpress进行了二次开发,有兴趣的同学可以点击测试 ...

  7. 前端设计中关于外部js文件加载的速度优化

    在一般情况下,许多人都是将<script>写在了<head>标签中,而许多浏览器都是使用单一的线程来加载js文件的,从上往下,从左往右. 若是加载过程出错,那么网页就会阻塞,就 ...

  8. 优化ajax加载数据速度,通过ajax优化页面加载速度

    最近在做的一个外包项目,由于客户的要求,首页内容十分繁杂,并且由于客户需求的变更,导致初期的设计不够合理,调用了大量的后台服务,首页两三秒才能加载出来,重新调整服务又太麻烦,基本上是重构了... 优化 ...

  9. Qt5.9使用QWebEngineView加载网页速度非常慢,问题解决

    折腾了大半天终于解决了 原帖地址:https://bugreports.qt.io/browse/QTBUG-44763 BUG单下的留言讲明了问题发生的原因,那就是系统默认设置为自动寻找代理,而使用 ...

最新文章

  1. 国家脑库:神经科学研究的基础设施
  2. collections之defaultdict
  3. 全球及中国教育行业投资动态与发展决策建议报告2022版
  4. 超级实用!如何为机器学习算法准备数据?
  5. MNIST 手写数字识别,我是如何做到886个可训练参数,识别率达到98.2%? (参数、模型压缩), Keras实现,模型优化
  6. python xpath爬虫_[爬虫]python下的xpath清洗数据之html数据清洗
  7. 怎样用计算机算代数,计算机与代数-如何计算sqrt-方法和实现 - 小黑电脑
  8. java实现时间轮定时器_基于侵入式链表的时间轮定时器实现
  9. zemax设置 像方远心_ZEMAX:如何翻转整个光学系统
  10. HTML 拖放功能 - DragDrop
  11. 2017-2018-1 《程序设计与数据结构》课程总结
  12. java 重写或者覆父类方法的使用throws 抛出异常,为什么要小于父类父类,java面试点
  13. idea-2017破解教程
  14. video.js 视频播放插件使用
  15. model(**inputs)备忘
  16. 【Tableau Desktop 企业日常问题23】Tableau 筛选之后如何保持原有排序顺序?
  17. Pytorch官方文档英语翻译
  18. 运算器设计(计算机组成实验)1
  19. 使用uniapp架构开发小程序与web端的一些笔记啊哈哈!
  20. CSND Python技能树模块使用|Python 技能树测评

热门文章

  1. GX Works3 (三):FX5U官方文档细节总结
  2. 基于PChmi.dll的PLC的报警显示及记录
  3. musql数据库定期跑批操作数据库,不必java后台写定时方法去操作。
  4. kong笔记——自定义插件开发
  5. 输入框连续删除,光标闪烁问题
  6. 跑腿app开发软件需要具体哪些功能
  7. 安卓从入门到进阶第六章(dumpsys初探)
  8. 火车票购买问题模拟-同步
  9. Conflux网络2022路线图
  10. LimeSDR-USB 初学者教程(Windows)