我有一些HTML具有以下近似结构和定位:
<div class="grand-parent" style="position: absolute">
<div class="parent" style="position: relative">
<div class="child"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在我的jQuery小部件中,我正在尝试插入位于小部件所针对的元素的"偏移父级"内的元素.为此,我基本上有这样的代码:
var targetElement = $('.child');
$('<div/>').appendTo(targetElement.offsetParent());
Run Code Online (Sandbox Code Playgroud)
不幸的是,该元素似乎是作为孩子插入.grand-parent而不是parent.我对offsetParent()(以及文档似乎支持这一点)的理解是offsetParent()应该返回,.parent因为它是相对的.我对offsetParent的理解是不正确的,还是jQuery存在问题(我使用的是1.4.1).
我在使用Windows服务时相当新,但我发现了一个特殊的事件,我想澄清一下.我有一个用C#编写的Windows服务,我安装并开始使用命令行(在stackoverflow上找到了很棒的指令).我服务的主要方法如下:
static void Main(string[] args)
{
if (args.Length == 0)
{
ServiceBase.Run(new MyServiceName());
}
else if (args.Length == 1)
{
const string name = "MyServiceName";
Type type = typeof(MyAssembly);
switch (args[0])
{
case "-install":
ServiceUtils.InstallService(name, type);
ServiceUtils.StartService(args, name);
break;
case "-uninstall":
ServiceUtils.StopService(name);
ServiceUtils.UninstallService(name, type);
break;
default:
throw new NotImplementedException();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我总是向应用程序发送一个参数(-install).因此,第一个if语句(if (args.Length == 0)永远不会被执行.这是预期的,我的服务安装和启动就好了.但是,如果我删除if语句并只保留if (args.Length == 1)语句,我的服务安装正确,但它没有启动,我收到以下错误:
无法在计算机上启动MyServiceName'.'
我的问题是:为什么在我的应用程序中永远不执行第一个if语句中的代码?
这是InstallService和StartService方法的支持代码(我也从stackoverflow获得):
public static void InstallService(string serviceName, Type t)
{
if (IsInstalled(serviceName)) return;
try
{ …Run Code Online (Sandbox Code Playgroud) 由于 jQuery 处理脚本标记的方式,我发现有必要使用正则表达式进行一些 HTML 操作(是的,我知道......这不是完成这项工作的理想工具)。不幸的是,我对捕获组在 JavaScript 中如何工作的理解似乎有缺陷,因为当我尝试这样做时:
var scriptTagFormat = /<script .*?(src="(.*?)")?.*?>(.*?)<\/script>/ig;
html = html.replace(
scriptTagFormat,
'<span class="script-placeholder" style="display:none;" title="$2">$3</span>');
Run Code Online (Sandbox Code Playgroud)
脚本标记被替换为跨度,但生成的title属性为空。不应该匹配脚本标签的属性$2内容吗?src
我遇到了一种方法来改变foreach循环中的列表,方法是转换为自己的列表,如下所示:
foreach (var item in myList.ToList())
{
//add or remove items from myList
}
Run Code Online (Sandbox Code Playgroud)
(如果您尝试myList直接修改,则抛出错误,因为枚举器基本上将其锁定)
这是有效的,因为它不是原始myList的被修改.我的问题是,这个方法是否garbage在循环结束时创建(即从方法List返回的那个ToList?对于小循环,是否最好使用a for loop来避免创建垃圾?
我想找到词干Wordnet.是否wordnet具有阻止功能?我使用这个导入来阻止,但它不能按预期工作.
from nltk.stem.wordnet import WordNetLemmatizer
WordNetLemmatizer().lemmatize('Having','v')
Run Code Online (Sandbox Code Playgroud) 我需要k从长度列表中生成长度的所有组合n,我必须使用递归来完成.
例如:
INPUT: choose_sets([1,2,3,4],3)
OUTPUT: [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
Run Code Online (Sandbox Code Playgroud)
INPUT: choose_sets([1,2,3,4],2)
OUTPUT: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
Run Code Online (Sandbox Code Playgroud)
我在代码中执行此操作时遇到困难,所以我很乐意提供一些帮助.到目前为止这是我的代码(我遗漏的东西只是不知道是什么):
def choose_sets(lst,k):
if k == len(lst):
return lst
if k == 0:
return []
if k > len(lst):
return []
sets=[]
sub_lst=lst[:]
sub_lst.remove(sub_lst[0])
a= choose_sets(sub_lst,k-1)
for i in a:
i.append(lst[0])
sets.append(a)
b= choose_sets(sub_lst,k)
sets.append(b)
return sets
Run Code Online (Sandbox Code Playgroud) 我想要对我的习惯进行单元测试ServiceHostFactory.不幸的是,我InvalidOperationException在打电话时得到这个CreateServiceHost:
无法在当前托管环境中调用"ServiceHostFactory.CreateServiceHost".此API要求将调用应用程序托管在IIS或WAS中.
我可以通过重构我的类来解决这个问题,它暴露了一个公共方法,它可以由单元测试直接调用,而不是使用它继承的公共接口; 我不想仅仅为了单元测试而改变我的界面.我还看到另一个建议产生Cassini主机的SO答案,但我不想以这种方式使我的单元测试复杂化.
有没有办法解决这个ServiceHostFactory限制而不诉诸这些措施?
有没有办法检测何时尝试出站连接排队?
我们的ASP.NET应用程序向其他Web服务发出大量的出站请求.最近我们遇到了主要的性能问题,其中对特定端点的调用需要很长时间才能完成或超时.该服务的所有者在他们看来没有看到任何性能问题.当我们分析网络流量时,我们确实看到了HTTP请求确实及时完成.那时我们发现我们漫长的等待时间和超时是由于连接排队造成的.
我们解决此问题的第一种方法是简单地增加到该端点的允许出站连接数,因此:
<system.net>
<connectionManagement>
<add address="http://some.endpoint.com" maxconnection="96" />
</connectionManagement>
</system.net>
Run Code Online (Sandbox Code Playgroud)
这确实使我们对端点的调用大大减少了.但是,我们注意到这导致我们的整体入站请求需要更长时间才能完成.那时我们遇到了Microsoft KB 821268.遵循"经验法则"指南,我们提出了以下额外更改:
<processModel maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50"/>
<httpRuntime minFreeThreads="704" minLocalRequestFreeThreads="608"/>
Run Code Online (Sandbox Code Playgroud)
这似乎解决了一切.我们的呼叫some.endpoint.com仍然很快,我们的响应时间也下降了.
但是,几天后,我们注意到我们的网站性能不佳,我们看到了一些SQL Server超时.我们的DBA没有看到服务器性能有任何不妥,所以这看起来像是类似的事情再次发生; 我们想知道增加的连接some.endpoint.com是否导致其他出站调用队列,可能是由于线程不足.
最糟糕的是,我们还没有找到一种好的技术来明确地知道是否正在进行出站连接排队.我们所能做的就是观察我们提出请求和在申请中收到回复之间的时间.很难知道超时和长响应时间是否是由于特定排队造成的.
是否有任何有效的工具来测量和调整出站请求限制?任何其他性能调优技巧也一定会受到赞赏.
我正在开发一个 Slack 应用程序,将警报应用程序发布到频道。我希望这个应用程序检查频道的历史记录以查找它之前发布的消息,以便它可以做出相应的响应。例如,如果有一个尚未“清除”的警报,它将更新所述警报而不是发布新消息。
我遇到的挑战是我不清楚如何识别我的应用程序发布的消息。我看到我可以用对话搜索一个频道,历史记录,这给了我消息事件。看起来有些消息有一个user属性。还有bot_message具有bot_id属性的子类型消息。但是,我看不到任何方法来识别我的应用程序 ID。
每个应用程序都应该有一个关联的bot_id吗?userID?如果是这样,我从哪里获得这些 ID 以便我可以过滤对话历史记录?
更新
我尝试在bots.info没有机器人 ID 参数的情况下调用该方法,希望它能给我我的机器人 ID,但它除了“OK”状态之外没有返回任何数据。
我需要尽可能快地验证并在socket上接收下一个xml数据.
我正在使用此方法来验证收到的xml-datas.
private validateRecievedXmlCallback()
{
try
{
XmlReader xreader = XmlReader.Create(new StringReader(xmlData));
while (xreader.Read()) ;
}
catch (Exception)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我认为这种方法效率不高.我实际上只需要检查最后一个标签.
例:
<test valueA="1" valueB="2">
<data valueC="1" />
<data valueC="5" />
<data valueC="5">220</data>
</test> //I need to check if </test> tag closed, but whats the best way to do it?
Run Code Online (Sandbox Code Playgroud) c# ×3
javascript ×2
python ×2
.net-3.5 ×1
asp.net ×1
foreach ×1
iis-7.5 ×1
jquery ×1
list ×1
nltk ×1
offset ×1
performance ×1
permutation ×1
positioning ×1
recursion ×1
regex ×1
regex-group ×1
replace ×1
slack-api ×1
stemming ×1
tcp ×1
threadpool ×1
unit-testing ×1
wcf ×1
wordnet ×1
xml ×1