在Javascript中是否存在原子测试和设置,信号量或锁定这样的事情?
我有javascript通过自定义协议调用异步后台进程(后台进程实际上在一个单独的进程中运行,与浏览器无关).我相信我遇到了竞争状态; 后台进程在我的测试和我的设置之间返回,在javascript端搞砸了.我需要一个测试和设置操作来使它成为一个真正的信号量.
这是尝试检测后台进程并将其排队的javascript代码:
Call = function () {
var isRunning = true,
queue = [];
return {
// myPublicProperty: "something",
call: function (method) {
if (isRunning) {
console.log("Busy, pushing " + method);
queue.push(method);
} else {
isRunning = true;
objccall(method);
}
},
done: function() {
isRunning = false;
if (queue.length > 0) {
Call.call(queue.shift());
}
}
};
}();
Run Code Online (Sandbox Code Playgroud)
呼叫是一个实现排队的单身人士; 任何想要调用外部进程的人都会调用Call.call("something").
有任何想法吗?
我正在使用knockout.js来构建动态列表,我正在试图弄清楚如何在可观察数组中获取与对象关联的DOM对象.具体来说,我想连续获取jQuery.
例:
<ul data-bind="foreach: Item">
<li data-bind="events: {click: getDomObject}, text: 'text: ' + text">
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在getDomObject函数中,我希望能够获取特定的<li></li>DOM对象,以便我可以使用它进行一些jQuery操作.
我已经考虑过将一个id成员添加到Item ViewModel然后将id添加为行项目的html id然后根据它进行选择,但我觉得应该有一个更简单的方法.
引用knockout.js生成的动态HTML的正确方法是什么?
我有一个Web API应用程序,我需要通过ActionFilter的OnActionExecuted方法获得一些API端点的返回值
我正在使用自定义属性来标识具有我需要修改的数据的端点,但我似乎无法从HttpActionExecutedContext中找到实际的结果对象.
谢谢你的帮助!
我正在使用Facebook Graph API,我想知道是否还有一个电话中的所有用户及其当前状态列表?
我基本上想要与https://graph.facebook.com/me/friends相同的结果,但每个对象包含当前状态.
谢谢你的帮助!
编辑:
这是一些澄清.如果https://graph.facebook.com/me/friends?access_token=...得到我这个:( AKA我所有朋友的名单)
{
"data": [
{
"name": "Foo",
"id": "1"
},
{
"name": "Bar",
"id": "2"
},
{
"name": "Foo Bar",
"id": "3"
},
{
"name": "Bar Foo",
"id": "4"
}
]
}
Run Code Online (Sandbox Code Playgroud)
什么URL或FQL会让我这样:( AKA我所有朋友和他们的状态列表)
{
"data": [
{
"name": "Foo",
"id": "1"
"status": "This is my current status!"
},
{
"name": "Bar",
"id": "2"
"status": "This is my current status!"
},
{
"name": "Foo Bar",
"id": "3"
"status": "This …Run Code Online (Sandbox Code Playgroud) 我正在为Android应用程序实现一个UI,我想问一下原生小部件中是否已经存在一些东西来完成我正在尝试的大部分内容.
我正在处理的应用程序执行15个不同的任务,可以分为3个不同的组.(每组5个任务)我有18个图标图像(3个用于组,15个用于单个任务),我希望能够将这些图标(从组开始)组合在一起,如下所示:

我希望下方和上方显示下一个图标(如果比第一个图标更下方)并滑动以转到下一个图标

单击图标后,面板将滑动到侧面,从而显示下一层(所选组的特定5个任务),并且所选组仍在侧面可见:

从那里,用户可以一眼就看出他们在哪个组,当前,下一个和之前可选择的任务是什么,并且通过向右滑动,他们可以返回到组选择.
为了完成这样的事情,我需要研究哪些类型的小部件?是否已经预先建立了列表来进行这些活动?
谢谢你的指导!
我试图在应用程序变为活动状态时恢复后台下载,但它始终在.GetCurrentDownloadsAsync()中提供文件未找到异常
IReadOnlyList<DownloadOperation> downloads = null;
try
{
downloads = await BackgroundDownloader.GetCurrentDownloadsAsync();
if (downloads.Count <= 0)
return;
foreach (DownloadOperation op in downloads)
{
op.Resume();
}
}
catch(Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个协作网站,我希望在用户查看或编辑数据时向他们发送通知.类似于StackOverflow中的内容,如果您回复问题并且顶部的通知弹出,表示该帖子有新的回复.
我可以看到如何使用某种轮询AJAX魔术来做到这一点,但我想知道是否有任何方法可以使用轮询将通知推送到浏览器?
感谢您的任何帮助/想法:)
编辑:
对于那些感兴趣的人,我选择了SignalR https://github.com/SignalR/SignalR/wiki/Hubs
我正在处理一个需要在收到新通知时通知用户的应用程序.该应用程序将托管在Azure上,并且将是.NET MVC 3(可能不重要,但仅供参考).我也
通知保存在MSSQL数据库(2008)中并有一个IsRead字段.通知是从各种用户和服务器操作生成的.根据用户首选项,将创建一些通知IsRead == false.
我有2种不同的场景,我觉得SignalR在处理方面会很完美,我只需要一些指导:
IsRead == true
对于第一个场景,我认为导致通知写入数据库的相同操作将负责通知所有用户的浏览器实例.
第二种情况类似,通过单击弹出窗口,将通过Ajax调用服务器端点,该端点将更新数据库以将通知标记为已读,然后通知所有其他用户的浏览器实例.
如果有一种方法可以根据ASP.NET Forms Authentication Username跟踪SignalR客户端,那么我认为这将有助于解决两种情况下的问题.
我的主要问题是我不知道如何使用SignalR向所有特定用户的浏览器实例发出信号.我正在考虑根据ASP.NET Forms Authentication Username创建一个组.这会有用吗?是否有一种更简单的方法可以内置到SignalR中来处理这个问题?
我有一个嵌套数组的数组,如下所示:
var tw = [[3, 0], [11, 0], [3, 14], [11, 14]];
Run Code Online (Sandbox Code Playgroud)
当我尝试查找数组是否tw包含传入的数组时,我总是得到-1的结果.
例如:
var test = $.inArray([3, 0], tw);
var test2 = tw.indexOf([3, 0]);
Run Code Online (Sandbox Code Playgroud)
返回-1,即使数组中的第一个对象是[3,0]
如何查明我的数组中是否包含特定的数组数组?
哦,到目前为止我只在IE9上测试过它.
我有一个Azure网站,我用它来托管我的MVC +实体框架项目.当我使用与SQL Azure数据库相同的连接在本地运行站点时,一切都运行良好,但是当我将站点部署到我的Azure网站时,我收到以下错误:
初始化字符串的格式不符合从索引0开始的规范.
我按照其他几个帖子中的步骤将连接字符串添加到抛出的错误中,这就是连接字符串的结果:
Server=tcp:abcde1fgh2.database.windows.net,1433;Database=SalesLeads;User ID=username_test@abcde1fgh2;Password=Password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;
Run Code Online (Sandbox Code Playgroud)
此字符串与本地使用的连接字符串匹配.
为什么本地使用相同的字符串,但不是远程?
以下是该网站的完整web.config:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
<connectionStrings>
<add name="DefaultConnection" connectionString="Server=tcp:abcde1fgh2.database.windows.net,1433;Database=SalesLeads;User ID=username_test@abcde1fgh2;Password=Password;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" /> …Run Code Online (Sandbox Code Playgroud)