![]() |
|
首页 │ Apache │ Linux│ Java│ MySQL│ 注册│帮助 | |||
相关问题
之前一发过一篇有关于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函数:
CODE: 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); |
关键是这段代码
CODE: 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更新.
那么这篇文章也就结束了,那么好处在什么地方呢,就是在提交数据后,不用再重新调数据库刷新页面了。这样应该可以提高不少效率,也能给人无刷新的体验快感吧!
(PS:纯属瞎扯)
------AD时间----------------------------------
完全基于PHP+AJAX的sblog抢先发布
上面所说的技术在这个sblog中很好的体现出来了!
村子下载地址:http://www.phpx.com/happy/thread-128772-1-1.html
提问者:shenzhe 08-22 12:12
答复

