2015年12月9日实习总结

也许是撸代码时间长了,写篇博客打会儿游戏都情不自禁的ctrl+s。

最近几天都比较事多,所以今天抽空总结一下这几天干的事情吧。其实这几天一直挺累的,从早上到晚上,都在撸代码,可是到总结的时候,又没有多少可以写进博客里的,看来,是忙得太多,忘了思考了。

废话不哆嗦了,再啰嗦又到10点了。

今天主要工作是做了一个搜索框。往大了说,是跟百度一个性质的东西,往小了说,也就一个小的连插件都算不上的东西。

他的样子是长这样的,我简单说一下具体流程,首先你要先写一个界面,也就是一个input框,我这个就是直接从bootstrap上扒下来的,一点技术含量没有,纯粹体力活。然后下边要放一个隐藏的div,这个div是干嘛的呢,你要是了解这行并稍微懂一下脑子,也应该知道他是放搜索结果的。

OK,show you the code,




这就是搜索框的界面了,然后我们通过ajax把input框中的你要搜索的东西传递到后台,后台再根据接收到的值,从数据库中查找相应的数据(注意权限控制),(需要用到模糊查找),然后再把搜索到的数据返回给js, js 接收数据再构造出要显示给用户的html代码并放到搜索结果框中。

逻辑大概就是这样,然后考虑实现问题,其实实现起来还是比较容易的,因为数据量不是很大,所以就要注意好多细节了,具体的细节问题你自己做的时候一定会遇到,比如样式啦,隐藏和显示问题啦。

ps:最初想通过bootstrap中的select2来做这个搜索框,经本人亲测,不太好用,如果你能完美地用select2实现,还望指点,所以就由衷地发出一些感慨,插件固然是好多,模板固然是好多,框架固然是好的,让我按你的规矩来?凭什么!

关于这个搜索框的问题,就说这么多吧,然后再记录一个昨天遇到的问题呢,是一个算法问题,是不是B格有点高了呢?(我都开始崇拜我自己了)

怎么来描述这个问题呢?容我三思;经过一番玩命思考,终于抽象出了问题的本质,然而机智的我已经看到了本质啊有木有。简单叙述一下这个问题:给定若干个不重合区间[a1,b1]...[an,bn],给定一个新的区间[ai,bi],判断新区间与原来的区间是否有重合。 嗯,就是这样;

问题来源于:

这里,我要新插入一条数据,要求更之前的数据不能有重复,所以就有了上述问题,关于该问题,我考虑了很久,后来也算是解决了但肯定不是最优解。

这里叙述一下我的做法,首先要考虑有重复的情况,这个我考虑过了,是有四种情况,而不重合的情况,是有两种,这个问题可以画图解决,肯定判断四种要比判断两种耗费资源,所以我是采用的判断不重合的方法,当然如果有问题的话还望指正,然后就是每一次判断需要分别判断该区间的开始节点和结束节点,而我这种情况,默认了结束节点肯定比开始节点大,所以该问题就变成了判断某一节点是否在某一区间的问题。然后循环判断这些区间,最终得到结果。


$eventStartTime = strtotime($eventData['startTime']);//新的事件的开始时间
$eventEndTime = strtotime($eventData['endTime']);//新的事件的结束时间


//开始验证
foreach ($originalEvents as $key => $value) {
$originalStartTime = strtotime($value['startTime']);//原有事件的开始时间
$originalEndTime = strtotime($value['endTime']);//原有事件的结束时间
if(($originalStartTime < $eventStartTime) && ($originalEndTime <= $eventStartTime)){
continue;
}else{
if(($originalStartTime >= $eventEndTime) && ($originalEndTime > $eventEndTime)){
continue;
}else{
return false;
}
}
}
return true;

以上就是具体代码部分了。
好吧,今天的总结就写这些。
等等,还有一个问题,就是关于数据库索引的问题,这个明天不出意外的话会具体写,先写一点预习的心得吧,就是关于二叉树的问题,二叉树的好处在于,搜索起来比较快,而且增加、

你可能感兴趣的:(2015年12月9日实习总结)