小编Jus*_*rls的帖子

如何正确使在线/离线Web应用程序的HTML5缓存清单无效?

我目前使用一个缓存清单(如描述在这里).这有效地使得在用户离线时运行应用程序所需的资源.

不幸的是,它运作得有点好.

加载缓存清单后,Firefox 3.5+将缓存缓存清单中显式引用的所有资源.但是,如果服务器上的文件已更新,并且用户尝试在线时强制刷新页面(包括缓存清单本身),Firefox将绝对拒绝提取任何内容.应用程序在缓存的最后一点保持完全冻结.问题:

  1. 我希望Firefox在网络连接失败时有效地仅依赖缓存的资源.我尝试过使用FALLBACK块,但无济于事.这甚至可能吗?
  2. 如果#1不可能,那么用户是否可以强制刷新页面并绕过此缓存(ctrl-F5不执行此操作,并且不会清除浏览器的缓存,令人震惊)还没有清除其私有数据?或者,缓存清单机制是否支持到期标头,并且它的行为是否记录在任何地方?

html firefox html5 caching offline-caching

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

类别可以同时实现协议吗?

如果我为类创建的类别添加的方法也符合协议规定的合同,我想将该类别标记为实现协议,从而向Obj-C预处理器指示class也有效地实现了协议.

示例代表(为了清楚起见,感谢Ole!):

@protocol SomeDelegate <NSObject>
  - (void)someDelegateMessage;
@end
Run Code Online (Sandbox Code Playgroud)

示例类别:

@interface NSObject (SomeCategory) <SomeDelegate>
  - (void)someDelegateMessage;    
@end
Run Code Online (Sandbox Code Playgroud)

并且具有其他典型的实现

@implement NSObject (SomeCategory)
  - (void)someDelegateMessage {}
@end
Run Code Online (Sandbox Code Playgroud)

当我实际尝试这个时,我会收到每个NSObject方法的警告:

警告:类别'SomeCategory'的执行不完整

警告:找不到'-description'的方法定义

...

警告:找不到'-isEqual:'的方法定义

警告:类别'SomeCategory'没有完全实现'NSObject'协议

如果我<SomeDelegate>从声明中删除,工作正常,但当然NSObject不被识别为SomeDelegate

cocoa protocols objective-c categories

27
推荐指数
2
解决办法
7737
查看次数

Eclipse及其完全非Mac-Like键绑定

更新:对于您可以导入到Eclipse中的CSV,请检查此Gist [Ed:或不...看起来它已经填满了?标记应该是关键图标的位置]

讨论

我已经在OS X中避免了Java开发一段时间了,只是因为Eclipse的UI与OS X的HIG非常不一致.其中最重要的是它的精简窗口,但完全不可接受的Mac默认密钥绑定.

我正在修复我可以使用的键绑定Preferences -> Keys,但有一些是有问题的.

配置窗格的屏幕,如果有人找不到它: alt text http://i47.tinypic.com/2dm7ow.jpg

绑定到目前为止我已经改变了: [注意:如果其中任何一个看起来很奇怪,我试图在Mac上没有更广泛的标准快捷方式的情况下尽可能模仿Xcode]

      Name      |     Old Command  |  New Command  
----------------------------------------------------
Content Assist  | Ctrl-Space       | Escape 
Redo            | Cmd-Y            | Cmd-Shift-Z
Find Next       | Cmd-K            | Cmd-G
Find Previous   | Shift-Cmd-K      | Shift-Cmd-G
Backward History| Cmd-[            | *Unbind Command*
Forward History | Cmd-]            | *Unbind Command*
Properties      | Alt-Return       | Cmd-I
Debug           | Cmd-F11         | Cmd-Y
Run (in Windows)| Cmd-Shift-F11    | Cmd-R
Build Clean …

eclipse macos keyboard-shortcuts

21
推荐指数
1
解决办法
9943
查看次数

通过构建所有asset_path值来避免使用*.js.erb文件

因此,我希望避免使用ERB处理JavaScript文件,这样我就可以获得适当的资产路径,例如图像.

目前,这似乎是流行的方法:

var myImage = "<%= asset_path('my_image') %>";

当然,这需要将文件名更改为"*.erb",以便进行处理.

我更倾向于将ERB丑陋与我项目中的一个点隔离,制作一个清单文件(例如"assets.js.erb")来计算并提供我需要的所有资产路径.

我当然可以通过逐案解决来做到这一点:

ASSETS =
  "my_image": "<%= asset_path('my_image') %>"

window.assetPath = (path) -> ASSETS[path]
Run Code Online (Sandbox Code Playgroud)

但是,我真的宁愿只写一些ERB来递归我的所有内容asset_paths.asset_environment.paths并为我构建一个大的对象文字清单,这样我真正的应用程序JavaScript就可以自信地调用:

var myImage = assetPath('my_image');

关于(1)的任何想法是否有更容易的方法来做我错过的,或者(2)我如何完成对所有潜在有效参数的搜索asset_path

ruby-on-rails erb sprockets asset-pipeline

17
推荐指数
1
解决办法
5210
查看次数

使用testdoublejs测试多个策略的Promise

testdouble在node.js项目中用于存根调用.这个特殊的功能是包装一个promise并then在函数本身内有多个调用.

function getUser (rethink, username) {
  return new Promise((resolve, reject) => {
  let r = database.connect();
  r.then(conn => database.table(tablename).filter({username}))
   .then(data => resolve(data))
   .error(err => reject(err));
 });
}
Run Code Online (Sandbox Code Playgroud)

所以我想确定是否根据错误条件正确处理resolvereject处理.假设我需要验证一些自定义逻辑.

为了我的考试

import getUser from './user';
import td from 'testdouble';
test(t => {
  const db = td.object();
  const connect = td.function();
  td.when(connect('options')).thenResolve();
  const result = getUser(db, 'testuser');
  t.verify(result);
}
Run Code Online (Sandbox Code Playgroud)

问题是connect的结果需要是一个promise,所以我使用一个值来解析,该值需要是另一个解析或拒绝的promise.

与之相关的database.connect()是不是承诺的结果.

TypeError: Cannot read property 'then' of undefined
Run Code Online (Sandbox Code Playgroud)

任何人都可以成功使用Test Double来阻止这种类型的通话吗?

node.js rethinkdb test-double testdoublejs

10
推荐指数
1
解决办法
734
查看次数

如何从iPhone SDK中提取UIBarButtonItem图标?

我想从iPhone SDK中提取默认的UIBarButtonItem图标.我想他们可能只是作为alpha-channel-only PNG存储在iPhoneSimulator平台上,但我还没有找到它.

我正在寻找的是UIBarButtonSystemItemReply.(对于那些可疑的,甚至有一个有效的用例,我希望在用户可以发布回复的表行标题上使用它,行方式)

iphone

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

在iPhone应用程序中管理自定义属性列表键的常规方法是什么?

每个新的iPhone SDK项目都会创建一个[ApplicationName] -Info.plist文件.我的问题:将自定义属性键添加到Info.plist并以编程方式访问它们还是应该在单独的plist中创建它是否常规?

也许它并不重要,但使用bundle描述符plist我的自定义属性感觉很脏.

[请注意,我不是在询问面向用户的属性或设置,因此我不是指使用"设置"捆绑包.]

iphone cocoa-touch

9
推荐指数
1
解决办法
2043
查看次数

在Maven2中,构建WAR和EAR以在单个POM中包含该WAR的最简单方法是什么?

情况非常简单.我有一个Java webapp,我正在转换为使用Maven构建.目前,应用程序使用Ant构建到单个WAR文件中,然后使用非常简单的application.xml将其捆绑到EAR中.

maven-war-pluginmaven-ear-plugin看起来都相当简单的我,看来他们设置我将不得不考虑上述两个不同的项目,该项目WAR的EAR项目的依赖.这似乎有点不方便,特别是因为WAR项目的配置文件设置将针对每个环境进行更改,这似乎会强制我在每次尝试构建EAR时复制该构建调整.

所有这一切:是否有一种直接的方式来构建WAR并将其打包到这个简单易用的EAR中?我想避免将它们作为两个单独的项目进行维护,但同样也不愿意使用程序集来实现这一目标.

java maven-2 pom.xml maven-war-plugin maven-ear-plugin

9
推荐指数
1
解决办法
7064
查看次数

XCode中的标头搜索路径 - 是否可以设置宏或变量,使它们与SDK版本相关?

更新:似乎最近的XCode更新可能已更改此宏,请参阅此问答以获取更多信息:在XCode中获取较旧的SDKROOT行为


情况:我在iPhone项目上使用libxml2,并且我已经相对于SDK版本添加了它.但是,为了在项目中实际使用它,需要将其添加到项目设置中的标题搜索路径.

我希望这完全与SDK版本无关,因此标题搜索路径也应该与SDK版本相关,但是没有明显的方法来扩展表示SDK文件夹的变量.

例如,这是实际的文字路径:

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/include/libxml2

我希望能够表达

$ MAGICAL_BASE_SDK_VARIABLE/usr/include目录/ libxml2的

这是可以使用XCode完成的吗?

iphone xcode header-files libxml2

6
推荐指数
1
解决办法
9946
查看次数

Xcode 3.2.1 - 为什么生成核心数据的类会导致构建错误?

看起来最近的Xcode 3.2增加了一些代码生成细节(我认为)缺乏雪豹之前.

我采取了以下步骤:

  1. 使用一些实体定义一个简单的.xcdatamodel模型,包括一个(不可逆)一个:多个关系(一个Endpoint有很多Subscription对象)

  2. 文件 - >新建,然后选择(无图标)"托管对象类".从那个向导,我选择了我的课程,我参加了比赛.

  3. 直到,也就是说,我试图建立.我得到这个结果,但无法弄清楚:

未定义的符号: "_OBJC_METACLASS _ $ _ NSManagedObject",从引用:_OBJC_METACLASS _ $ _认购在认购-B5BE258DF28BC03B.o _OBJC_METACLASS _ $ _端点Endpoint.o "_OBJC_CLASS _ $ _ NSManagedObject",从引用:_OBJC_CLASS _ $ _认购在认购-B5BE258DF28BC03B.o _OBJC_CLASS _ $ _端点Endpoint.o ld:未找到符号collect2:ld返回1退出状态

我喜欢的帮助:

  1. 如果有人对我刚做错的事情有任何想法,那就太棒了.

  2. 看起来让Xcode生成你的类的唯一方法是File - > New并再次替换它们,其中(除其他外)会导致对新类的重复引用,并且你的旧类文件无用地留在项目中的移动文件夹.有谁知道如何正确保持这些同步?我还没有找到任何涵盖新内容的Apple文档.

iphone xcode core-data

6
推荐指数
2
解决办法
4884
查看次数