使用emlog写的最后一篇博客

此主页首次上线与2013年4月,当时emlog应该正是如日中天的时候,我尝试了一下感觉系统还不错,相应速度要比WordPress快不少,再加上是国人开发,于是就从众多开源博客系统中选择了emlog.

有插件市场,但是数量不多,质量也不是特别理想,但是总体来说能用,够用,我还心血来潮开发了一个可以把博客内容发送到指定邮箱的小插件.

使用中没什么大问题,不过在插入代码块的时候是真的难受,经常把页面搞的乱七八糟的,还得切换到源码模式来修改.一来二去,我对emlog渐渐的失去了耐心,一心想要把博客迁移走.

js getTime()返回NaN的问题

今天在项目中的一个js文件中,使用了getTime()的方法来获取毫秒数。但是在手机中运行项目的时候发现,部分设备获取毫秒数异常,返回NaN。
获取时间戳的代码如下:

gin关联查询的一个小小的知识点

在做一个老项目迁移,从PHP迁移到Golang,于是不得不一边迁移一边深入的了解老系,发现老系统有很多奇葩的设计,今天说说其中一个,以及给我带来的困扰和解决方案。

有三张表

1.用户表(user)

记录一个跨域相关的疑难杂症

最近在做一个前后端完全分离的项目,这其中自然少不了一个经典的话题——跨域。

前端用的uniapp,后端用的Laravel。

前者刚刚开始接触,用后者也从来没有做过前后端分离的项目,正因为两个都不是特别的熟悉,导致这次在坑中摸爬滚打了好久才爬出来。

JavaScript中的addEventListener自定义事件

说到JavaScript事件,我们首先就能想到click事件、submit事件等等。但是有时候这些预定义的事件并不能满足我们的需求,比如在提供给第三方的SDK中。

由于SDK运行的环境非常复杂,第三方业务中有什么代码我们无法预知,这可能会导致事件冲突的问题,这时候我们就需要自定义事件来避免此类冲突了。

父页面于iframe通信

下面是一个iframe和父页面相互通信的demo,其中使用了一个非常方便的方法postMessage,但是有时候,我们的子页面可能会包含其他业务逻辑,这里面如果也用到了postMessage,就难免会产生冲突,这时候,我们可以使用自定义事件来解决。

PECL、PEAR、phpize、composer 的区别和联系

首先,我们先分别了解一下这四个东西的官方介绍。

PECL:

PECL是PHP扩展的存储库,提供了所有已知的扩展和托管设施的目录,用于下载和开发PHP扩展。

PECL使用的包装和分配系统与它的姐妹PEAR共享。

PEAR:

PEAR是一个可重用PHP组件的框架和分发系统。

phpize:

用 phpize 编译共享 PECL 扩展库。

有时候不能用 pecl 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。

Composer:

是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

js多级返回上一级页面时出现的死循环解决方法

history.go(-1)是js返回上一级的方法,很容易实现让页面从哪来回哪去,简单好用,但是如果我们有多级页面,这个方法会出现死循环。

比如我们访问页面的顺序是A->B->C,在C页面点击返回,会跳到B页面,在B页面再点击返回,就到了C页面,并不是我们期望的A页面,这样就出现了死循环,导致无论如何我无法返回到A页面。

解决方法: