ISO8601时间格式

new Date('2016-10-17 10:00:00');在Safari下会被认为是Invalid Date。

需要按照标准的IOS8601格式,如:new Date('2016-10-17T10:00:00');

或严谨点儿带上时区的new Date('2016-10-17T10:00:00+08:00');

continue reading ISO8601时间格式

ES,TF/IDF排序算法

script score中除了doc/_score还可以通过_index获取一些查询中的参数,其中词频、文档数什么的就是通过_index.xxx获取

TF/IDF

TF = sqrt(词出现的次数)

IDF = 1+log(总文档数/(包含该词的文档数+1))

fieldNorm 看起来像是 1/ sqrt(该文档总共包含的所有词数)

最终得分是TF * IDF

如果考虑到fieldNorm的话,大概是TF * (IDF * fieldNorm)

这个大概的作用就是如果把内容短的得分提高,可以在建索引的时候把它关掉,我是觉的这个一般情况下没什么用

参考:

https://www.elastic.co/guide/en/elasticsearch/reference/2.4/modules-advanced-scripting.html

https://www.elastic.co/guide/en/elasticsearch/guide/2.x/scoring-theory.html#tfidf

https://www.elastic.co/guide/en/elasticsearch/reference/master/modules-scripting-fields.html

continue reading ES,TF/IDF排序算法

mac gem安装失败

改为sudo gem install -n /usr/local/bin compass

continue reading mac gem安装失败

Javascript导出Excel

  1. 引用ExcelBuilder
  2. 创建workbook
  3. 创建worksheet
  4. 加载数据
  5. 下载
  • 自动计算列宽
  • 过滤特殊字符
  • 自动换行,顶部对齐
  • 全局默认样式

     

 

continue reading Javascript导出Excel

Angular Js 事件传递、广播、Controller间数据交互

架设有这么三个Controller,Golbal在外面,另外两个在里面

  • GlobalController
    • UserListController
    • UserDetailController

UserListController触发一个事件change_user冒泡到GlobalController中

 

GlobalController响应这个事件

 

GlobalController广播一个事件到自己和所有的子Controller中

 

UserDetailController接收广播

 

continue reading Angular Js 事件传递、广播、Controller间数据交互

JS/CSS判断是否是retina屏幕

JS:

 

CSS:

 

continue reading JS/CSS判断是否是retina屏幕

ios版QQ中锚点和hashchange的BUG

问题

QQ版本:5.6 for iPhone

首先是这样一段代码,正常情况下点击A标签location的hash会变成#one,并触发hashchange事件,页面不会刷新。

再执行history.back()或点击浏览器的后退按钮时,会再次触发hashchange事件,页面也不会刷新

但是在ios的QQ中点击A标签会刷新页面后条转到#one处,不会触发hashchange事件。

再执行history.back()或点击浏览器的后退按钮时,同样不会触发hashchange事件,并且是以重新加载页面的方式返回的。

感觉在ios的QQ中锚点链接被当成了普通链接进行处理了。

尝试解决

然后稍微做了一些调整,将href=”#one”改成了通过js执行location.hash=”#one”。

这么写之后点击a标签页面不会刷新了,location.hash也变成了#one,但是却没有触发hashchange事件。

最终解决

改用popstate事件,不知道为什么在ios的QQ中onload的时候会触发popstate事件,history.back时也会触发这个事件。

用正则判断了一下userAgent,如果是在ios的QQ中就使用popstate,其它情况还是用hashchange

continue reading ios版QQ中锚点和hashchange的BUG