网页写作习惯的改变

    技术2022-05-11  54

    个人征信系统完成,花了一天时间导入了N多人的数据,自我欣赏了好几天,把所有认识的人都查了一下。难过的准确率,和不太满意的查找率。这是数据质量的问题不说了……后台还是使用asp写的,但是程序构成方法有了很大的转变,过去html直接加入asp代码的日子已经结束了。使用了所谓的webservices使后台编程的难度降低了很多,也减轻了服务器的负担。在这个ws里我使用了很简单的rest协议。通过这个协议,简单实现整个流程,发送一个id=****,获得一个xml文档回执,问题变得如此简单了,前台用javascript 获得数据一一放入到需要的地方。这种方法唯一会让人感到高兴的是:看到的页面都是.htm

    两段代码

    1、所有的事情交给浏览器做,当然页面间的全局变量最好的方法是Cookie。这样服务器获得数据后,无论什么页面随用随取,自由自在。

    // 网上抄的 function  SetCookie(name,value) // 两个参数,一个是cookie的名子,一个是值 {    var Days = 1//此 cookie 将被保存 1 天    var exp  = new Date();    //new Date("December 31, 9998");    exp.setTime(exp.getTime() + Days*24*60*60*1000);    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();} function  getCookie(name) // 取cookies函数         {    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));    if(arr != nullreturn unescape(arr[2]); return null;} function  delCookie(name) // 删除cookie {    var exp = new Date();    exp.setTime(exp.getTime() - 1);    var cval=getCookie(name);    if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();} // SetCookie ("xiaoqi", "3") // alert(getCookie('xiaoqi'));

     2、数据翻页代码 做成了 [上一页][1][2][3][4][5][6][7][8][下一页] 这类形式翻页只是对小数据量最好,我的100条数据很快,打数据量还是按原始方法,传来数据分成10页,无刷新翻页,速度自然是快的惊人。

     

    function  ToPage(oArg) {        var oSize, oCount, oPosition, strList = '';        var oTarget = oArg;        var oTable = document.all['oTable'];        var oData = document.all['oData'];        var oRecordSet = oData.recordset;        oSize = oTable.dataPageSize;        oRecordSet.PageSize = oSize;        oCount = oRecordSet.PageCount;        oPosition = oRecordSet.AbsolutePage;        if (oTarget<1{ oTarget = 1; }        if (oTarget>oCount) { oTarget = oCount; }        while (oPosition!=oTarget) {            if (oPosition<oTarget) {                oRecordSet.AbsolutePage ++;                oPosition = oRecordSet.AbsolutePage;                oTable.nextPage();            } else {                oRecordSet.AbsolutePage --;                oPosition = oRecordSet.AbsolutePage;                oTable.previousPage();            }        }        var oPage = document.all['oPage'];        for (var i=1; i<=oCount; i++{             strList += '[<a href= "javascript:ToPage(' + i + '); void 0;" class="a">';             strList += (oRecordSet.AbsolutePage!=i) ? i : '<b>' + oRecordSet.AbsolutePage + '</b>' ;             strList += '</a>]  ';        }        if (oRecordSet.AbsolutePage>1)        {            strList = '[<A HREF="javascript:ToPage('+(oRecordSet.AbsolutePage-1)+'); void 0;" class="a">上一页</A>]  ' + strList        }        if (oRecordSet.AbsolutePage != oCount)        {            strList =  strList + '[<A HREF="javascript:ToPage('+(oRecordSet.AbsolutePage+1)+');void 0;" class="a">下一页</A>]'        }        //strList = strList.substr(0, strList.length-12);        oPage.innerHTML = strList;    }      function  setList()  {                var oSize, oCount, strList = '';        var oTable = document.all['oTable'];        var oData = document.all['oData'];        var oRecordSet = oData.recordset;        oSize = oTable.dataPageSize;        oRecordSet.PageSize = oSize;        oCount = oRecordSet.PageCount;        var opagecount = document.all['opagecount'];        $('opagecount').innerHTML ='     搜索共得到<font color="#FF0000">' + oRecordSet.recordcount + '</font>个结果,共<font color="#FF0000">' + oCount + '</font>页';                var oPage = document.all['oPage'];        for (var i=1; i<=oCount; i++{             strList += '[<a href="javascript:ToPage(' + i + '); void 0;" class="a">';             strList += (oRecordSet.AbsolutePage!=i) ? i : '<b>' + i + '</b>' ;             strList += '</a>]  ';        }        if (oCount > 1)        {            strList = strList + '[<A HREF="javascript:ToPage('+(oRecordSet.AbsolutePage+1)+'); void 0;" class="a">下一页</A>]'        }        //strList = strList.substr(0, strList.length-12);        oPage.innerHTML = strList;    }      // <table id="oTable" width="90%" align="center" border="0" cellPadding="0" cellSpacing="0" dataSrc="#oData" dataPageSize="10">      // <span id="oPage"></span>

    获取数据使用了ajax,这样会让用户感觉上速度很快。prototype 1.5使用让我节约了不少时间,而且在学习中时刻震惊js的强大。

     

    var  quest = location.search.replace( / ?/ g, "" ) // 从获得的url中度群参数部分,可在split来获取每一个 function  getXML()         {        $('oTable').style.visibility = "hidden";         var url = 'asp/resaultin.asp';        var pars = quest;        var myAjax = new Ajax.Updater(        'myxml',        url,        {        method: 'get',        parameters: pars,        onComplete:onready        });        }

    js的事件和windows里很像,所以发现以前学习的东西还是很有用的。prototype直接一句话

    Event.observe(document,  ' datasetchanged ' , showMessage,  false ); function  showMessage()  {    $('oTable').style.visibility = "visible"; }  

    最后用了别人的tab 控件,日期控件,和lightbox--thicjbox--最后换成greybox 效果虽然还觉得有点差异,不过已经很满意了。


    最新回复(0)