图文解析AJAX的原理(3)

function getWeeklyCalendar(name,currentDate,mode){ $.ajax({ type:'POST', url:'weekProcess.php',data:'func=getWeeklyCalender&name='+name+'&currentDate='+currentDate+'& mode='+mode, success:function(data){ paintWeeklyCandler(data); } }); }

后台成功返回Response后,执行paintWeeklyCandler(data)方法

后台PHP代码

<?php<br> //定义返回的Response的格式为JSON格式 header('Content-type: text/json');<br> //引入自定义的数据库连接文件 include 'dbConfig.php';<br> //引入自定义的设置session的文件 include_once 'session.php'; /* * Function requested by Ajax */ if(isset($_POST['func']) && !empty($_POST['func'])) { switch($_POST['func']){  case 'getWeeklyCalender':     getWeeklyCalender($_POST['name'],$_POST['currentDate'],$_POST['mode']);      break;     case 'getWeeklyStatus':     getWeeklyStatus($_POST['name'],$_POST['currentDate'],$_POST['mode']);     break;     case 'getEvents':     getEvents($_POST['date'],$_POST['name']);     break;    default:     break; } } function getWeeklyCalender($name = '',$currentDate = '',$mode = '') { //逻辑代码<br>    <br> <br>    //返回JSON格式的Response echo json_encode(array('result'=>$DaysOfWeekResultsArray)); }<br>?>

六、优势

1.使用异步方式与服务器通信,页面不需要重新加载,页面无刷新

2.按需取数据,减少服务器的负担

3.使得Web应用程序更为迅捷地响应用户交互

4.AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行

5.浏览器的内容和服务端代码进行分离。页面的内容全部由JAVAScript来控制,服务端负责逻辑的校验和从数据库中拿数据。

七、缺点

1.安全问题:将服务端的方法暴露出来,黑客可利用这一点进行攻击

2.大量JS代码,容易出错

3.Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰——用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等

4.可能破坏浏览器后退按钮的正常行为;

5.一些手持设备(如手机、PAD等)自带的浏览器现在还不能很好的支持Ajax

八、应用场景

1.对数据进行过滤和操纵相关数据的场景

2.添加/删除树节点

3.添加/删除列表中的某一行记录

4.切换下拉列表item

5.注册用户名重名的校验

九、不适用场景

1.整个页面内容的保存

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjpjjx.html