第15章 程序员进阶之路

关灯
到啥难题了?”李君浩把情况跟魏晨说了一遍,魏晨思考片刻后说:“我之前做过一个类似的项目,用了一种叫临时表的方法,或许能解决你的问题。

    你可以先根据部分条件查询出一些中间数据,存到临时表里,然后再用临时表和其他表进行关联查询。

    比如说,先根据用户注册时间筛选出符合条件的用户,存到临时表temp_user里,CREATETEMPORARYTABLEtemp_userASSELECTuser_idFROMuser_tableWHEREregister_timeBETWEEN'2024-01-01'AND'2025-01-01';然后再用这个临时表和订单表以及其他新表进行关联。

    ” 这章没有结束,请点击下一页继续阅读! 李君浩眼睛一亮,立刻按照魏晨说的方法尝试。

    经过一下午的努力,他终于成功实现了新需求下的复杂连表查询。

    他激动地跑到魏晨工位旁,说道:“魏哥,太感谢你了,要不是你这关键一招,我真不知道要卡多久。

    ” 解决了连表查询的问题后,李君浩又将目光投向了前端ajax的学习。

    他想起魏晨在网站开发中对前端技术的熟练运用,便决定向魏晨请教。

    下班后,李君浩找到魏晨,说道:“魏哥,你忙不?我想跟你请教下前端ajax的用法。

    我知道你在网站开发里用得很溜,我现在在这方面还一知半解的。

    ”魏晨笑着说:“不忙,君浩,ajax其实不难,你是哪方面不太清楚?” 李君浩挠挠头说:“我知道ajax可以实现页面的异步数据请求,不用刷新页面就能获取数据。

    但是我在实际写代码的时候,老是出问题。

    比如说,我想通过ajax从后端获取用户列表数据,然后在页面上展示出来,但是数据老是获取不到。

    ”魏晨打开电脑,一边操作一边说:“来,我们一起看。

    首先,你要创建一个XMLHttpRequest对象,这是ajax的核心。

    varxhr=newXMLHttpRequest;然后,设置请求的方法和URL,比如xhr.open('GET','user_list.php',true);这里的GET是请求方法,user_list.php是后端提供数据的接口,true表示异步请求。

    接着,你要设置请求头,告诉服务器你发送的数据类型,xhr.setRequestHeader('Content-type','application/x--form-urlencoded');最后,就是处理服务器返回的数据了,xhr.onreadystatechange=function{if(xhr.readyState==4&&xhr.status==200){varresponse=JSON.parse(xhr.responseText);//处理返回的数据,这里假设返回的是JSON格式的数据}};然后调用xhr.send;发送请求。

    你看看你是哪一步出问题了?” 李君浩看着魏晨的演示,一边思考一边说:“魏哥,我好像在设置请求头和处理返回数据那里有点乱。

    我不太清楚不同的数据类型该怎么设置请求头,还有返回的数据格式也不太会处理。

    ”魏晨耐心地解释道:“如果是普通的表单数据,就像刚才那样设置请求头。

    如果是JSON数据,请求头要设置成xhr.setRequestHeader('Content-type','application/json');,发送数据的时候要用JSON.stringify(data)把数据转换成JSON字符串。

    处理返回数据的时候,如果是JSON格式,就像我刚才那样用JSON.parse解析。

    要是返回的是XML格式,那就得用XML解析的方法了。

    比如说varxmlDoc=xhr.responseXML;varnodes=xmlDoc.getElementsByTagName('user');然后遍历节点获取数据。

    ” 李君浩认真地听着,不停地提问,魏晨一一解答。

    在魏晨