小编Set*_*own的帖子

去包初始化

情况:

Go包A由3个.go文件组成,我在每个文件中使用来自另一个包B的函数.我必须在每个文件的开头导入包B.

题:

B实际上是初始化3次还是只有1次?

go

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

从数组中删除项目需要多次传递才能将它们全部删除

我有一个~1200个ruby对象的数组,我想循环遍历它们并删除名称中包含单词或部分单词的对象.

所以我尝试了这个:

list.each do |item|
  if item.name =~ /cat|dog|rat/i
    puts item.name
    list.delete(item)
  end
end
Run Code Online (Sandbox Code Playgroud)

它的工作原理,除了它似乎错过了一些名称应该匹配的项目.如果我再次运行它会发现更多,如果我再次运行它会发现更多.它每次都找不到,但我必须运行它3次才能删除所有内容.

世界上为什么会发生这种情况?

ruby regex

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

检查jQuery ajax请求的状态

似乎只有在ajax请求能够从服务器获得某些响应时才会触发成功,错误和完整回调.

因此,如果我关闭服务器,则不会执行以下错误回调,并且请求会以静默方式失败.

$.ajax({
  type: "GET",
  url: "http://localhost:3000/",
  dataType: "script",
  success: function() {
    alert("success");
  },
  error: function() {
    alert("error");
  }
});
Run Code Online (Sandbox Code Playgroud)

什么是在根本无法访问服务器时抛出错误的最佳方法.

编辑 - 从我的尝试和阅读看来,jQuery的内置错误处理似乎不适用于JSONP或dataType:"script".所以我要尝试设置手动超时.

编辑 - 做了一点研究,看起来不仅ajax错误回调不起作用,而且你不能用dataType脚本或jsonp中止ajax请求,这些请求忽略超时设置.

有一个替代方案 - jquery-jsonp插件,但它使用隐藏的iframe,我宁愿避免.所以我已经决定创建一个手动超时,如下所示.如果请求超时,则无法中止请求,这意味着即使在超时后脚本仍可能仍然加载,但如果服务器不可用,则至少会触发某些内容.

ajax jquery jsonp

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

使用Goroutines在http处理程序中进行后台工作

我以为我找到了一种简单的方法来立即返回http响应,然后在后台进行一些工作而不会阻塞.但是,这不起作用.

func MyHandler(w http.ResponseWriter, r *http.Request) {
    //handle form values
    go doSomeBackgroundWork() // this will take 2 or 3 seconds
    w.WriteHeader(http.StatusOK)
}
Run Code Online (Sandbox Code Playgroud)

它第一次工作 - 立即返回响应并开始后台工作.但是,任何进一步的请求都会挂起,直到后台goroutine完成.有没有更好的方法来执行此操作,这不涉及设置消息队列和单独的后台进程.

go goroutine

7
推荐指数
2
解决办法
3842
查看次数

标签 统计

go ×2

ajax ×1

goroutine ×1

jquery ×1

jsonp ×1

regex ×1

ruby ×1