给哈斯老师做词典搜索时的一些些思考
给哈斯老师做词典搜索时,关于数据的显示方式,用id值出错的思考 html, body {font-size: 12pt;}body {font-family: Helvetica, ‘Hiragino Sans GB’, ‘微软雅黑’, ‘Microsoft YaHei UI’, SimSun, SimHei, arial, sans-serif;line-height: 1.6;margin: 0 auto;padding: 20px 16px;padding: 1.25rem 1rem;}h1, h2, h3, h4, h5, h6 {margin:20px 0 10px;margin:1.25rem 0 0.625rem;padding: 0;font-weight: bold;}h1 {font-size:20pt;font-size:1.67rem;}h2 {font-size:18pt;font-size:1.5rem;}h3 {font-size:15pt;font-size:1.25rem;}h4 {font-size:14pt;font-size:1.17rem;}h5 {font-size:12pt;font-size:1rem;}h6 {font-size:12pt;font-size:1rem;color: #777777;margin: 1rem 0;}div, p, ul, ol, dl, li {margin:0;}blockquote, table, pre, code {margin:8px 0;}ul, ol {padding-left:32px;padding-left:2rem;}ol.wiz-list-level1 > li {list-style-type:decimal;}ol.wiz-list-level2 > li {list-style-type:lower-latin;}ol.wiz-list-level3 > li {list-style-type:lower-roman;}blockquote {padding:0 12px;padding:0 0.75rem;}blockquote > :first-child {margin-top:0;}blockquote > :last-child {margin-bottom:0;}img {border:0;max-width:100%;height:auto !important;margin:2px 0;}table {border-collapse:collapse;border:1px solid #bbbbbb;}td, th {padding:4px 8px;border-collapse:collapse;border:1px solid #bbbbbb;min-height:28px;word-break:break-all;box-sizing: border-box;}.wiz-hide {display:none !important;}
给哈斯老师做了一个蒙文搜索站,提供蒙文的搜索和后台的一些管理功 能,就是增删改查,虽然这种东西做了无数遍,但每一次都能发现一些自己的问题,也能更熟练的,更深入理解编程的思想,每个操作更加灵活,机智,便于扩展,好开发,这一次也是有很多收获,比如1.数据量比较大,22万条,虽然检索的时候很慢,2.22万条数据是不能一次都提取出来的,PHP有内存限制,会导致内存溢出,这个问题我以前一直没有注意,3. 在做分页处理的时候,我是使用自己写的接口,一开始挺好,后来就出现了问题,使用id作为数据的提取特征是一个很大的问题,id是不断变化的,刚刚想到一个好的方法,就是直接用thinkphp提供的分页接口,一切都OK,效率上去了,问题也解决了,还好写,不会出错,这就是我的一点收获,要记到笔记里,作为一丝丝经验了。。。。
/**
* 使用id来获取值的确会错,刚刚出现了一个bug,就是222506以后的所有数据在本页面中不显示,是因为我删除了一个数据,所以
* id的连续性出现中断,导致if判断里直接break了,
*
* 这里的这个问题我不想重新在用别的方法去写一遍了,就用最简单的方法,挑选够10条数据就OK,不去判断什么,这样肯定是有问题的
* ,而且以后会很严重,那就是如果删除的数据多了,用page来获取目标开始id就失效了,页面也就链接不上了,但目前先这样吧,
*
* 更好的解决方法有很多,1,不删除数据,设置一个state字段,修改字段的值就行,但是这样使用page获取目标开始id也会出错
* 2. 不使用id来作为目标开始数,而用确切的位置来定位,但用什么定位我也没有想到什么好的方法,以后遇到不可避免的开发时,再去研究吧
*/
for ($i=$page*10-10+1;$i<=$page*10;$i++){
/**
* 如果数据的条数发生改变,这种方法就会出现bug,所以用下面的判断null比较好一些
* 并且还能用这个来判断页数,确定是不是最后一页
*/
// if ($i>222506){
// break;
// }
$data = D(‘Cmdic1’)->get_Cmdic1Info(array(‘id’=>$i));
if ($data[‘id’]==’’){
continue;
}
- Title: 给哈斯老师做词典搜索时的一些些思考
- Author: algorain
- Created at: 2017-10-18 18:30:26
- Updated at: 2023-05-14 21:39:50
- Link: http://www.rain1024.com/2017/10/18/article102/
- License: This work is licensed under CC BY-NC-SA 4.0.