现在的位置: 首页 > 综合 > 正文

php加速之js篇(2)

2013年07月14日 ⁄ 综合 ⁄ 共 2540字 ⁄ 字号 评论关闭
PHP之JS加速第二季

之前一发过一篇有关于JS加速的文章,说是用利JS来替代PHP完成大部分的工作。其实 就是想偷工减料,损害网友利益,用客户机来分但服务器的负担而已,但果你服务器够牛B的话,这点效率根本不是问题,而接下来讲的就更不是问题了。所以觉得 自己服务器牛B的话,关闭此页面吧。吼吼!(很多人问我吼吼是啥,我说是呵呵的升级版)
        言归正传,我相信很多人在认为做WEB开发就是select insert into  update delete
其实也基本是这些了,但这些里面也有很多学问,这可我不探究PHP程序的效率问题,我是来探究,JS在这里又能为我们做些什么。
        举个简单的例子,一个简单的博客程序,在文章后面基本有评论功能,那多普通的做法就是评论提交后再刷新此页面。那么这里就有必要探究了,因为你会发 现,你刷新后更新的只有刚刚加的评论信息而已.其它的都是没有必要再从数据库里重复读取了,是不是会觉的浪费资源,影响效率呢?
那么为什么不用上JS呢,或许又有村友问了,不会是想用AJAX吧,其实AJAX也是JS的应用罢了,这里不是讨论AJAX的应用,有关AJAX的应用,村子里相关文章太多了。
那么看看我是如何想的如何实现的吧,(看图文)
1.这是一个普通的友链管理:

2.当我点击添加的时候:

3.输入相关信息后:

4.添加后:

这全部是在一个页面里完成的,所谓的无刷新吧
关键是3-4怎么实现的,看代码
点击添加后,触发了一个upLink()的JS函数:

function upLink(){
     if ($('ln').value=='' || $('lc').value=='' || $('lc').value==''){
                 alert("表单填写完整");
                 return false;
         }
         var option={
                parameters:"action=addlink&ln="+$('ln').value+"&lu="+$('lu').value+"&lc="+$('lc').value,
                method:"get",
                onSuccess:function(transport){
                        var response=transport.responseXML;
                        var dataArray = response.getElementsByTagName('succes');
                        var lid =dataArray[0].getAttribute('id');
                        var tbarr    = new Array();
                        tbarr[1] = $('lu').value;
                        tbarr[2] = $('lc').value;*/
                        tbarr[0] = "<span id='ln"+lid+"'>"+$('ln').value+"</span>";
                        tbarr[1] = "<span id='lu"+lid+"'>"+$('lu').value+"</span>";
                        tbarr[2] = "<span id='lc"+lid+"'>"+$('lc').value+"</span>";
                        tbarr[3] = '<a style="cursor:pointer" onclick="editCat('+lid+')"><img src="/blog/templates/manage/images/edit.gif" alt="修改" width="11" height="15" border="0" /></a> <a href="?action=dellink&lId='+lid+'" onclick="return confirm(/'确认要删除吗?/')"><img src="/blog/templates/manage/images/del.gif" alt="删除" width="13" height="13" border="0" /></a>';
                        obj=tb.insertRow();
                for(t=0;t<tb.rows(1).cells.length;t++){
                        cellobj=obj.insertCell();   
                cellobj.innerHTML=tbarr[t];
                        }
                        $('ln').value='';
                        $('lu').value='';
                        $('lc').value='';
                },
                onFailure:function(transport){
                alert ("提交失败");
                }
        }
        var request=new Ajax.Request("manageajax.php",option);

关键是这段代码

  obj=tb.insertRow();
  for(t=0;t<tb.rows(1).cells.length;t++){
       cellobj=obj.insertCell();   
      cellobj.innerHTML=tbarr[t];
  }
  $('ln').value='';
  $('lu').value='';
  $('lc').value='';

我并没有从数据库里再次提取数据而是用JS+DHTML直接往表格里加行加列
当然我提交部分用到了AJAX,不过不用也没关系,你可以新开一个窗口,提交成功到关闭。本页面再用JS+DHTML更新.
那么这篇文章也就结束了,那么好处在什么地方呢,就是在提交数据后,不用再重新调数据库刷新页面了。这样应该可以提高不少效率,也能给人无刷新的体验快感吧!

抱歉!评论已关闭.