魏长东

weichangdong

东邪

正在查看: 2016年09月日志归档(第 2 页 / 共 17 篇)

很厉害的js

看到别人写的一段js,觉得很厉害,共享下。因为本人对js的面向对象的写法还是很菜鸟。

/**
 * ajaxload js
 * @author yulipu
 * based on ylib's extend and event and ajax
 */
function AjaxLoad(opt) {
 opt = undefined == opt ? {} : opt;
 this.options = {
  container : 'listContainer',  // 容器
  loadMoreButton : 'loadMoreLink',  // 更多按钮
  lastId : 0,  // 最下面一条内容的id
  LatestId : 0  // 最新内容id
 };
 this.options = ylib.extend(this.options, opt);
 
 this.init();
}
AjaxLoad.prototype = {
 constructor : AjaxLoad,
 
 reset : function() {},
 
 init : function() {
  var _this = this;
  var o = this.options;
  // 添加事件
  ylib.E.addHandler(document.getElementById(o.loadMoreButton), 'click', function(){
   _this.loadMore(); 
  });
 },
 
 // 发送请求
 request : function(url, data, func, err) {
  ylib.ajax.request({
    "url" : url,
    "data" : data,
    "success" : func,
    "error" : err || function() {alert('请求超时或出错');}
  }); 
 },
 
 // 一些地址配置
 config : {
  // 动态加载内容地址
  loadmore : {
   url : _APP_ +'/about'
  },
  
  // 显示最新地址
  loadNew : {} 
 },
 
 // 加载更多
 loadMore : function() {
  var _this = this;
  var id = this.options.lastId;
  if(!id){alert('参数错误');return;}
  
  var container = document.getElementById(this.options.container);
  var aLink = document.getElementById(this.options.loadMoreButton);
  var parentEle = aLink.parentNode;
  var oldStr = parentEle.innerHTML;
  parentEle.innerHTML = '加载中...';
  
  var url = this.config.loadmore.url;
  var data = 'lastId='+id;
  this.request(url, data, function(str){
   parentEle.innerHTML = oldStr;
   _this.init();  // 重新添加事件
   if('4' == str) {
    alert('参数错误'); 
   } else if(str.indexOf("hava")>0) {
    container.innerHTML += str;
    try {
     _this.options.lastId = container.lastChild.getAttribute('id').split("_").pop();
    } catch(e) {
      
    }
    
   } else {
    parentEle.innerHTML = '没有数据了哦'; 
   }
   
  }, function(){
   parentEle.innerHTML = oldStr;
   _this.init(); // 重新添加事件
   alert('请求超时或出错');
  });
 } 
};

 

调用方法

<script type="text/javascript"> var ajaxLoad = new AjaxLoad({ "lastId" : 1 }); </script>

中秋节快乐

中秋放假,却心里空落落的,莫名烦恼。

希望有一条更加宽阔的路让自己走。

from iPhone

Specified key was too long; max key length is 1000 bytes

【ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes 】

  PRIMARY KEY (`id`),
  KEY `time_stamp` (`time_stamp`,`uiver`,`channel_id`),
  KEY `time_area` (`time_stamp`,`uiver`,`area`),
  KEY `time_lang` (`time_stamp`,`uiver`,`lang`),
  KEY `idx_ui_cha_are_time_user` (`uiver`,`channel_id`,`area`,`time_stamp`,`active_user`),
  KEY `idx_ui_cha_sub_are_la_time` (`uiver`,`channel_id`,`sub_channel_id`,`area`,`lang`,`time_stamp`)
) ENGINE=MyisAM  DEFAULT CHARSET=utf8;

之前是innodb,改成myisam,有些key太长,报错,然后吧CHARSET改成了latin1。

elastic search php版本

今天接触elastic search,居然发现有php的sdk,然后操作elastic search想操作mysql数据库一样。不过那个sdk文件太多了,等有时间再去研究下。网上发现了一个php操作他的类,其实也可以用的。

»»阅读全文

elasticsearch 查询(match和term)

match

最简单的一个match例子:

查询和"我的宝马多少马力"这个查询语句匹配的文档。

{
  "query": {
    "match": {
        "content" : {
            "query" : "我的宝马多少马力"
        }
    }
  }
}

上面的查询匹配就会进行分词,比如"宝马多少马力"会被分词为"宝马 多少 马力", 所有有关"宝马 多少 马力", 那么所有包含这三个词中的一个或多个的文档就会被搜索出来。
并且根据lucene的评分机制(TF/IDF)来进行评分。

»»阅读全文

yaf nginx配置

server {
root /var/www/yaf/public;
index index.php index.html;

server_name yaf.com;
error_log logs/sso_error.log;

location = /favicon.ico {
log_not_found off;
}

if (!-e $request_filename) {
rewrite ^/(.*\.(js|ico|gif|jpg|png|css|bmp|html|xls)$) /public/$1 last;
rewrite ^/(.*) /index.php?$1 last;
}


location /status {
stub_status on;
access_log off;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}



location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
} 

}