我有一个现有的项目,有很多异步函数返回promises.我正在添加一些缓存,以便在某些情况下异步函数将同步完成,并希望在可能的情况下使此代码更短/更好:
return $.Deferred(function(def) { def.resolve(); }).promise();
Run Code Online (Sandbox Code Playgroud)
例如,我有一个Data Service类来处理大多数看起来像这样的AJAX请求:
function DataService() {
var self = this;
self.makeRequest = function(functionName, data) {
return $.Deferred(function(def) {
var jsonData = JSON.stringify(data);
$.ajax({
type: "POST",
url: "WebService.asmx/" + functionName,
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function(xhr, status, error) {
var ex;
try {
ex = eval("(" + xhr.responseText + ")");
ex.message = ex.Message;
ex.Message = undefined;
} catch (ex2) {
ex = { message: "Invalid Response From Server:\r\n" + xhr.responseText };
}
if …Run Code Online (Sandbox Code Playgroud) 有这么多人将EOT文件用于webfonts(以支持IE8),我无法相信我找不到支持查看它们的单个应用程序.希望我错过了一些明显的东西,但是当我谷歌"eot文件查看器"时,我发现只有几个可能看起来像病毒的网站(那些有100万个不同下载链接的网站都会导致不同的网站上出现随机垃圾).
我正在使用PC,但也有可用的Mac,我有Visual Studio,XCode,Adobe CS3套件以及一系列其他开发人员/图形工具.当然所有流行的网络浏览器也是如此.
我正在解决IE8中的webfont显示问题.它正在使用我的EOT文件,但没有完全像我认为的那样显示它.我想排除在转换问题中丢失的任何东西(我使用过web squirl和ufonts以及其他在线转换器),我只有在我可以直接查看EOT而不是先转换为其他格式或转换时才能这样做EOT的一些其他格式和"假设"它是相同的.
我按照我在这里找到的一些步骤(现在找不到URL,抱歉)将Eclipse中的Android项目转换为99.9%的代码在库项目中的布局,然后我有2个其他的shell项目相同的工作区,主要是AndroidManifest.xml文件和一些资源文件.这样做了所以我可以支持同一个项目的2个版本,在2之间只有一些小的文本/图标更改.应用程序名称也不同,所以我可以同时在Android Market上发布.
自从我这样做以来,大约每10次我编译,也许每天或每两天,我得到"dalvik错误1"和"访问已经存在"(Access是我的库项目中第一个Java单元的名称) .
为了"解决"这个问题,我将进入我正在尝试构建的存根项目的Java Build路径,并从库选项卡中删除主库中的JAR文件.然后我可以构建没有错误.
然后一段时间(可能是1或2天),当我编译我的存根项目(而不是我的库)时,我会收到关于缺少类的错误.所以我将回到Java Build路径并重新引入JAR文件的引用,并且在1或2天内一切都好了,然后我又回到了和以前一样的错误.
这只是一个已知问题和我需要做的事情,还是我可以通过重构我的项目/工作区来解决?目前我有:
Lib Project - 在构建路径上只有2个库:Android 2.1和com.android.ide.eclipse.adt.LIBRARIES
使用上面的lib的第一个存根项目 - 具有与上面项目相同的2个库,另外有时我使用"添加JAR"来包含上面项目的bin \文件夹中的JAR.
第二个存根项目 - 与第一个存根项目相同的库
我应该使用构建路径选项下的其他选项卡之一从我的"lib项目"引用JAR吗?也许是"项目"标签,或"来源"标签?我目前在任何其他领域都没有.
当我进入奇怪的状态时,做一个"清洁项目"也没有帮助,我已经尝试了几次并在清理之间打开/关闭IDE,无法解决.
此时我们处于最后的测试阶段,所以我的正常日常任务是:
在LIB项目中进行一次小更新(错误修复)
使用发布向导导出两个项目并更新Android Market以及我们保留APK文件的其他位置
因此,我希望这些步骤保持简单,无需打开/关闭多个工作区或尽可能地执行大量构建步骤.
我的页面上有这样的表单:
<form data-bind="submit: AddFolder"></form>
Run Code Online (Sandbox Code Playgroud)
如果我在我的JS脚本中有这个代码(当然我已经删除了所有不相关的代码并进行了测试以确保我仍然可以仅使用此代码重新创建,通常你会在这里有更多的代码,例如.get和.post功能):
Sammy(function() {
}).run();
Run Code Online (Sandbox Code Playgroud)
提交表单后,页面会重定向到一个奇怪的URL,如 ?ko_unique=1
如果我从脚本中删除Sammy部分,则不会发生这种情况.我认为它与事件冒泡有关,Sammy和Knockout都挂钩onSubmit,浏览器只关注最后一个函数的返回值.
如果我在EditText小部件上设置SingleLine = true,我会得到一个单行编辑控件,它不允许用户插入硬返回(单击Enter移动到下一个字段而不是插入新行).如果我没有设置SingleLine = true,则用户可以插入硬回车.
如果我设置layout_height ="wrap_content",EditText控件将垂直增长以显示所有文本.但是,只有在SingleLine未设置为true时才会执行此操作.
所以,我的问题是,是否有可能在不允许用户输入硬换行符的情况下进行自动换行和垂直调整大小?我想我可以陷入输入按键,但是我还必须抓住其他方式,他们可能会在那里得到一个(复制/粘贴,不知道还有什么?).只有正确的属性组合,有一种简单的方法吗?
与单线编辑控件的水平滚动相比,我更喜欢用户可以看到所有文本的自动换行,但我真的不希望他们认为可以输入多行文本(我不想要必须支持它).我想,当我将数据保存到我的数据库时,我可能只是将硬回车转换为空格,如果必须的话(我在PC上同步这些数据的遗留应用程序无法处理硬回车).
我正在使用这个jQuery插件,并在我的网站上看到相同的结果,因为我可以在此演示中重现:
http://blueimp.github.io/jQuery-File-Upload/
即使演示说"上传服务器当前不可用",您仍然可以通过转到演示并尝试上传零字节文件来重新创建问题(必须具有JPG,GIF或PNG扩展名,因为这是他们允许的全部内容).
在FireFox和Chrome中,您将看到它尝试POST零字节文件.在IE10中,如果您在开发人员工具中查看网络选项卡,您将看到XMLHTTPRequest对象处于"挂起"状态.如果您在IE10中上传非零大小的文件,您还会看到它POST数据.
我搜索并发现只有其他人抱怨IE10中的零字节文件问题.他们没有像我一样使用相同的jQuery插件,所以我认为这是一个普遍的IE10问题.此外,我到目前为止找到的唯一答案是不允许用户上传零字节文件.如果可能的话,我想支持零字节文件,它们在我的应用程序中有一些用法,我不时会自己使用它们,所以我应该让我的用户因为想要这个功能而疯狂.
我有什么选择?
是否可以查询Android AlarmManager以查看给定PendingIntent的下一次警报的时间?我知道我可以使用.cancel(PendingIntent)函数取消一个,我可以使用.set()更新一个,但是可以"查询"一个吗?我使用这样的东西来看看是否已经安排了一个:
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_NO_CREATE);
Run Code Online (Sandbox Code Playgroud)
如果sender == null,则已经安排了一个.我真的很想知道"什么时间?" 如果可能的话.
我知道我可以将它保存在数据库或其他位置,当我设置它时,但我真的很想查询"官方来源".可能?
我有一个表,用于记录用户操作.每次执行操作时,值都需要增加.由于用户可以同时拥有多个会话,因此该过程需要是原子的,以避免多用户问题.
该表有3列:
ActionCode 如 varcharUserID 如 intCount 如 int我想通过ActionCode和UserID到将添加一个新行,如果一个已经不存在,并设置数量为1.如果该行确实存在一个功能,它只是一个增加数量. ActionCode并UserID组成此表的主要唯一索引.
如果我需要做的就是更新,我可以做这样简单的事情(因为UPDATE查询已经是原子的):
UPDATE (Table)
SET Count = Count + 1
WHERE ActionCode = @ActionCode AND UserID = @UserID
Run Code Online (Sandbox Code Playgroud)
我是SQL新手中的原子事务.这个问题可能已在多个部分得到解答,但我找不到这些问题并将这些部分放在一个解决方案中.这也需要非常快,而不会变得复杂,因为这些操作可能经常发生.
编辑:对不起,这可能是MySQL的一个骗局如何在单个查询中执行if exists增量.我搜索了很多,但tsql在我的搜索中,一旦我改为sql相反,这是最好的结果.如果这是原子的,那不是很明显,但很确定它会是.我可能会投票删除这个作为欺骗,除非有人认为这个问题和答案可以增加一些新的价值.
这与所有其他问题不同. 我已经阻止Chrome在拖动时进入文本选择模式. (编辑:我只想锁定图标/外观,不限制位置或移动,仅限于mousedown和mouseup之间)我想避免的问题是Chrome在拖动时更改光标,到光标下的任何内容(即-i-beam同时在文本输入控制,手上同时超链接等).
IE和FireFox/Moz支持我在mousedown事件中调用的element.setCapture(),它将这些浏览器"锁定"到元素中,以便鼠标光标停留在该元素的光标上.非常好.Chrome不支持我所知道的功能或类似功能.
通过观察文档对象上的mousemove和mouseup事件而不是单击的元素,我仍然可以获得大部分的setCapture()行为,因为我可以跟踪在元素外部发生的鼠标事件,甚至在外部浏览器窗口.但是,我还剩下一个问题,Chrome中的鼠标光标变化了.
iPhone 6是否有一些新方法(屏幕外/硬按钮)重新打开隐藏的软键盘?我没有可以测试的物理设备,但是我在iPhone 6或iPhone 5中看不到iPhone 6模拟器中的新功能.
横向视图中的iPhone 6现在有一个"隐藏键盘"按钮,就像之前只有iPad一样.以下是我所看到的不同行为,我希望这不是我需要设计应用程序的新问题.
iPad和iPhone 6模拟器的初始步骤相同(并在物理iPad上测试,与模拟器相同):
切换到横向方向
打开日历应用程序(也可能是其他应用程序,但想使用本机应用程序给出示例,它发生在我的应用程序中也是我关心的原因)
点按+即可添加新活动
点按文字字段
点击右下角的"隐藏键盘"按钮
点按其他文字字段
在物理iPad和iPad模拟器上,键盘在此时重新打开.使用iPhone 6模拟器,键盘不会重新打开.
我在我的应用程序中尝试了resignFirstResponder和becomeFirstResponder的一些不同组合,试图让它重新出现,但没有任何效果.因为日历应用程序也有这个问题,我希望它实际上不是一个问题,并且用户可以根据需要手动重新打开键盘吗?在模拟器中我可以使用"切换软件键盘"并重新打开,但不确定物理设备是否有让用户重新打开键盘的东西?
如果我切换到另一个应用程序或主屏幕,之后键盘会再次按预期开始工作(点击文本字段并打开).
android ×3
java ×2
jquery ×2
alarmmanager ×1
atomic ×1
eclipse ×1
eot ×1
file-upload ×1
ide ×1
ios ×1
ios8 ×1
iphone-6 ×1
javascript ×1
knockout.js ×1
sammy.js ×1
sql ×1
sql-server ×1
webfonts ×1