小编ivo*_*ivo的帖子

HTML5 IndexedDB,Web SQL数据库和浏览器大战

我正在开始开发具有脱机数据库存储要求的Web应用程序.长话短说,应用程序应该可以运行:

  • Chrome浏览器首选的主要桌面浏览器之一
  • iOS上的Safari
  • Android的原生浏览器(基于V8和WebKit)

那么问题是选择哪种技术:IndexedDB或Web SQL数据库?

关于Web SQL数据库,一方面可以在任何上述场景中使用它.另一方面,Mozilla表示Firefox永远不会实现它,根据HTML5 工作草案,规范已经陷入僵局:

这个规范已陷入僵局:所有感兴趣的实现者都使用了相同的SQL后端(Sqlite),但我们需要多个独立的实现来继续标准化路径.在另一个实现者对实现此规范感兴趣之前,SQL方言的描述仅仅是对Sqlite的引用,这对于标准是不可接受的.如果您是一个对实现独立SQL后端感兴趣的实现者,请联系编辑器,以便他可以为方言编写规范,从而允许此规范继续前进.

IndexedDB是Mozilla提倡的替代品,但它只会出现在Firefox 4中.微软很感兴趣,Chrome也会支持它.我对Apple的IndexedDB计划一无所知.

我个人倾向于选择Web SQL数据库,但仅仅因为我习惯了SQLite,我喜欢SQL的强大和表现力,而且我理解关系模型.对我来说,IndexedDB是一种不确定性.

那就是说,我害怕赌错马.假设支持Web SQL数据库将继续存在,即使IndexedDB成为标准,是否安全?

(关于CouchDB的说明:您是否也将其视为替代方案?)

html5 web-sql indexeddb

44
推荐指数
6
解决办法
4万
查看次数

如何强制谷歌闭包编译器保持"使用严格"; 在编译的js代码中?

如果您正在使用模块模式并具有以下内容:

(function () {
   "use strict";
   // this function is strict...
}());
Run Code Online (Sandbox Code Playgroud)

并使用Google Closure Compiler编译代码,该"use strict";指令不会使其进入编译文件.

那么如何防止Closure Compiler删除ES5/strict指令呢?

(注意,我不想使用强制执行ES5 /严格模式的其他模式,即简单地将"use strict";添加到编译文件的第一行.我想使用此处所述的模块模式.)

javascript google-closure google-closure-compiler ecmascript-5

30
推荐指数
3
解决办法
7676
查看次数

什么是aopalliance所有?为什么guice使用它?

我正在使用guice进行依赖注入,而不是aopalliance.我无法弄清楚什么是aopalliance所有关于谁以及谁实现了他们的sourceforge页面上的版本(日期为2004年).为什么guice使用这个版本而不是像AspectJ这样更知名的包?

另外,你知道关于aopalliance版本的任何教程吗?

谢谢

aop guice aopalliance

23
推荐指数
1
解决办法
1万
查看次数

如何以纯粹的功能方式实现观察者设计模式?

假设我想使用OO编程语言实现事件总线.我可以这样做(伪代码):

class EventBus

    listeners = []

    public register(listener):
        listeners.add(listener)

    public unregister(listener):
        listeners.remove(listener)

    public fireEvent(event):
        for (listener in listeners):
            listener.on(event)
Run Code Online (Sandbox Code Playgroud)

这实际上是观察者模式,但用于应用程序的事件驱动控制流.

您将如何使用函数式编程语言(例如lisp风格之一)实现此模式?

我问这个是因为如果一个人不使用对象,人们仍然需要某种状态来维护所有听众的集合.此外,由于听众集合随着时间的推移而变化,因此无法创建纯粹的功能解决方案,对吧?

lisp scheme functional-programming clojure observer-pattern

23
推荐指数
4
解决办法
5635
查看次数

maven谷歌应用引擎项目中数据核增强器的冲突版本

我在设置datanucleus增强器时遇到问题,需要与谷歌应用程序引擎项目一起使用.如果我使用datanucleus eclipse插件一切顺利,但在我的maven项目中,我得到一个奇怪的冲突版本错误.

我的POM有这些数据核参考:

<dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-core</artifactId>
    <version>1.1.0</version>
</dependency>

...

<plugin>
    <groupId>org.datanucleus</groupId>
    <artifactId>maven-datanucleus-plugin</artifactId>
    <version>1.1.0</version>
    <configuration>
        <mappingIncludes>**/*.class</mappingIncludes>
        <verbose>true</verbose>
        <enhancerName>ASM</enhancerName>
        <api>JDO</api>
    </configuration>
    <executions>
        <execution>
        <phase>compile</phase>
        <goals>
            <goal>enhance</goal>
        </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

当我尝试构建项目时,我收到以下错误:

Exception in thread "main" Plugin (Bundle) "org.datanucleus" is already registered. 
Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.0/**datanucleus-core-1.1.0.jar**" is already registered, and you are trying to register an identical plugin located at URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.3/**datanucleus-core-1.1.3.jar**."
org.datanucleus.exceptions.NucleusException: Plugin (Bundle) "org.datanucleus" is already registered. Ensure …

google-app-engine maven-2 datanucleus

19
推荐指数
2
解决办法
1万
查看次数

浏览python api的其他方法

它只是我,或python标准库文档是非常难以浏览?

Java有其出色的Javadocs,Ruby有其有用的Ruby-Docs,只有在python中我找不到通过标准库文档导航的好方法.

Epydoc项目,看起来很不错,但是有人知道它是否真的被用在标准库上,所以我们都可以通过它吗?如果没有,人们用来浏览python文档的替代方案是什么.

python documentation standard-library

16
推荐指数
1
解决办法
1727
查看次数

如何使用Fossil中的提交修复故障单

所以,我认为在Redmine/Git中可以使用提交注释修复问题:

git commit -m "Fixes #123"
Run Code Online (Sandbox Code Playgroud)

Fossil有可能是这样吗?怎么样?

fossil

16
推荐指数
1
解决办法
1949
查看次数

用于逻辑编程的JavaScript库

你知道任何用于逻辑编程的好javascript库吗?

我对像jsprolog这样的东西感兴趣,但是我想使用javascript与lib进行通信,而不是使用不同的语言(例如本例中的prolog).

非常感谢.

javascript logic

16
推荐指数
2
解决办法
3454
查看次数

如何为Google Closure编译器自动生成externs

假设您正在使用具有多个外部库依赖项的javascript项目,并希望使用Google Closure Compiler以ADVANCED_OPTIMIZATIONS模式编译源代码.

由于在此模式下编译器会将代码调用重命名为外部库对象和函数,因此必须提供externs,以防止发生此重命名.

但是,手动生成externs需要做很多工作,那么,从给定的javascript lib自动生成适当的extern的最佳方法是什么?

google-closure google-closure-compiler

11
推荐指数
1
解决办法
4700
查看次数

SmartClient还是SmartGWT?

除了JavaScript和Java之间的明显差异之外,使用SmartClient或SmartGWT有哪些相关区别?

smartclient smartgwt

9
推荐指数
2
解决办法
6504
查看次数