-
下载不能用 ajax 请求的问题
2016-11-02 23:42Sym 的数据导出功能也是 AJAX 触发的,但中间“曲线救国”了一下:
$.ajax({ url: "export/posts", type: "POST", cache: false, success: function (result, textStatus) { window.open(result.url); } });
-
Latke CodeView - 1 cache
2016-11-01 23:52org.b3log.latke.cache.local.memory.AbstractMemoryCache
- 抽象类实现接口的作用是什么?
可能还有非内存型的实现。 - 为什么采用 long 类型,int 竟然不够用?
保险起见。 - 类声明处 K、V 的 extends 是什么意思
限定了 key、value 的类型必须派生自Serializable
。
org.b3log.latke.cache.local.memory.LruMemoryCache
- put 和 putAsync 看起来没什么区别,为何多加一个 putAsync?
本来想做一套异步接口的,后来没实现。 - inc 方法是什么意思?作用是什么?
强制把 value 作为 long 值并自增delta
并返回。
org.b3log.latke.cache.local.util.DoubleLinkedMap
- 为什么 addFirst 里判断了 key 是否为 null,而 addLast 没有?
看样子是漏了。 - 这个逻辑看起来有点重复,是不是可以改为:
这样的话last
重置不了。 - removeLast 和 removeLastNode 看起来也没什么区别,用意何在?
返回值不一样,抽象层面不一样,提供给不同的场景使用/复用。
org.b3log.latke.cache.CacheFactory
- 不太明白通过反射获取实例和直接 import 该类实例化有什么区别
cache 包因为实现和接口都在同一个 jar 里面,所以的确是可以像你说的直接 new 的,这里这样写是为了和其他服务(比如 repository)构造时保持相同的编程范式。
org.b3log.latke.cache.NoCache
- 这个类的用意何在?
为了方便替换已经用了真正 cache 的地方做穿透测试?不大记得了..
- 抽象类实现接口的作用是什么?