小编gog*_*n13的帖子

我可以在正则表达式中使用OR而不捕获所包含的内容吗?

我正在使用rubular.com来构建我的正则表达式,他们的文档描述了以下内容:

(...)   Capture everything enclosed
(a|b)   a or b
Run Code Online (Sandbox Code Playgroud)

如何使用OR表达式而不捕获其中的内容?例如,假设我要捕获"ac"或"bc".我不能使用正则表达式

(a|b)(c)
Run Code Online (Sandbox Code Playgroud)

对?从那时起,我在一组中捕获"a"或"b",在另一组中捕获"c",而不是相同.我知道我可以过滤捕获的结果,但这似乎更多的工作......

我错过了一些明显的东西吗 我在Java中使用它,如果这是相关的.

regex capture regex-group

96
推荐指数
3
解决办法
8万
查看次数

为什么java等待这么长时间来运行垃圾收集器?

我正在使用Play构建一个Java Web应用程序!框架.我在playapps.net上托管它.在提供的内存消耗图表上,我一直困惑不已.这是一个示例:

堆内存

该图表来自一致但名义上的活动期.我没有做任何事情来触发内存的衰减,所以我认为这是因为垃圾收集器运行,因为它几乎达到了允许的内存消耗.

我的问题:

  • 它是公平的,我认为我的应用程序并不会有内存泄漏,因为它似乎是所有内存都被正确地被垃圾回收器回收它在运行时?
  • (从标题)为什么java等到最后一秒可能运行垃圾收集器?随着内存消耗增长到图表的前四分之一,我看到显着的性能下降.
  • 如果我的断言是正确的,那么我该如何解决这个问题?我在SO上读过的其他帖子似乎反对调用System.gc(),范围从中性("它只是运行GC的请求,所以JVM可能只是忽略你")完全反对("依赖的代码System.gc()从根本上被打破") .或者我不在这里,我应该在我自己的代码中寻找导致此行为和间歇性性能损失的缺陷?

更新
我已经在PlayApps.net上开启了一个关于这个问题的讨论,并在这里提到了一些观点; 特别是@Affe关于完整GC设置非常保守的评论,以及@ G_H关于初始和最大堆大小设置的评论.

这是讨论链接,但遗憾的是您需要一个playapps帐户才能查看.

当我得到它时,我会在这里报告反馈; 非常感谢大家的回答,我已经从中学到了很多东西!

解决方案
Playapps支持,这仍然很好,对我没有很多建议,他们唯一的想法是,如果我广泛使用缓存,这可能会使对象保持活动的时间超过需要,但事实并非如此.我还是学到了很多东西(呜呜!),我给了@Ryan Amos绿色支票,因为我提出了他System.gc()每半天打电话的建议,现在工作正常.

java memory memory-management playframework

49
推荐指数
3
解决办法
7284
查看次数

为什么我不能将"window.location.reload"作为参数传递给setTimeout?

我希望通过以下代码行深入了解我在Safari和Chrome中看到的错误:

setTimeout(window.location.reload, 250);

Chrome报告:
Uncaught TypeError: Illegal invocation

和Safari:
TypeError: Type error

在FireFox中,代码运行正常.此外,此代码在三个浏览器中的每个浏览器中运行良好:

setTimeout((function() {
  window.location.reload();
}), 250);
Run Code Online (Sandbox Code Playgroud)

Chrome和Safari对此代码没有任何问题:

var say_hello = function () { alert("hello") };  
setTimeout(say_hello, 250);  
Run Code Online (Sandbox Code Playgroud)

有什么特别之处window.location.reload导致这个错误?

(不确定它是否有用,但这里有一个说明这个的jsfiddle)

javascript cross-browser

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

为什么Rails想要为JSON PUT请求返回"head:no_content"?

运行后我
rails generate scaffold User
在Rails 3.2.11中生成的控制器函数用于更新用户,如下所示:

def update
  @user = User.find(params[:id])

  respond_to do |format|
    if @user.update_attributes(params[:user])
      format.html { redirect_to @user, notice: 'User was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: "edit" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我很好奇的是返回head :no_content成功的JSON更新请求.我做了一些谷歌搜索,因为我猜这是某种RESTful属性,不返回更新的对象,但我找不到任何声称是这种情况.

为什么这是默认值,而不是在更新后返回User对象的JSON表示?

ruby-on-rails

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

IE9提示用户提交隐藏的iFrame

我正在调试我们的文件上传脚本,它在不支持通过XMLHttpRequest对象发送文件数据的浏览器中使用隐藏的iframe.

关于在IE中提交iframe的文章和问题过多; (比如这篇文章这篇文章),但他们都引用了IE不能为你正确设置'name'属性这一事实.

下面的代码生成一个表单,其目标设置为iFrame的名称,但在提交表单时,IE9仍然提示我"你想打开还是保存photo_upload.json?",而不是将其加载到iFrame中.

var $iframe = $("<iframe id='" + id + "' name='" + id + "' />");
$('body').append($iframe);

$iframe.load(function () {
  console.log("loaded");  // this never happens in IE9
});

// pretend this form also has a file input object that gets populated
var $form = $('<form />').attr({
  method: "post",
  enctype: "multipart/form-data",
  action: "/photo_upload.json",
  target: id
});

$('body').append($form);
$form.submit();  
Run Code Online (Sandbox Code Playgroud)

此代码适用于FF和Chrome,但在IE9中,系统会提示您打开或保存" photo_upload.json ".如果我打开文件,IE9获得的响应是​​准确的.

有没有人有任何见解?是否有任何我缺少的iframe提交要通过?我是否需要设置某种标题来告诉IE不要这样打开它?谢谢!

解:

感谢@Kolink为我解决了这个问题的代码.

Rails服务器端代码,在photo_upload函数中:

if params[:from_iframe]
  render :json => @temp_photo, :content_type …
Run Code Online (Sandbox Code Playgroud)

javascript iframe jquery

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

通过FaceBook API检索我自己的数据

我正在为一个使用Facebook作为其营销平台之一的喜剧小组建立一个网站; 新网站的要求之一是在日历上显示他们所有的Facebook活动.

目前,我只是想组建一个Python脚本,它可以从我自己的Facebook帐户中提取一些数据,就像我所有朋友的列表一样.我认为一旦我能够做到这一点,我就可以从我的客户帐户中提取更复杂的数据(因为他们让我访问了他们的帐户).

我在这里查看过很多帖子,并且还浏览了Facebook API文档,包括Facebook Connect,但我真的打败了我的脑袋.我已阅读一切似乎有点小题大做,因为它涉及到建立一个很好的协议的基础设施,以让我的应用程序的连接设置为任意用户的帐户(谁授权我).鉴于我只需要访问1个帐户,这应该不会简单得多吗?

我无法找到一种方法来检索数据,而无需显示Facebook登录窗口.我有一个脚本可以检索我的所有朋友,但它包含一个重定向,我必须自己登录到Facebook.

感谢任何建议或链接,我只是觉得我必须遗漏一些简单的东西.

谢谢!

python facebook

8
推荐指数
2
解决办法
4721
查看次数

如何在PHPUnit中模拟外部Web请求?

我正在使用PhactoryPHPUnit为PHP Propel项目设置测试套件.我目前正在尝试对发出外部请求的函数进行单元测试,并且我希望在该请求的模拟响应中存根.

这是我试图测试的类的片段:

class Endpoint {
  ...
  public function parseThirdPartyResponse() {
    $response = $this->fetchUrl("www.example.com/api.xml");
    // do stuff and return 
    ...
  }

  public function fetchUrl($url) {
    return file_get_contents($url);
  }
  ...
Run Code Online (Sandbox Code Playgroud)

这是我试图写的测试功能.

// my factory, defined in a seperate file
Phactory::define('endpoint', array('identifier'  => 'endpoint_$n');

// a test case in my endpoint_test file
public function testParseThirdPartyResponse() {
  $phEndpoint = Phactory::create('endpoint', $options);
  $endpoint = new EndpointQuery()::create()->findPK($phEndpoint->id);

  $stub = $this->getMock('Endpoint');
  $xml = "...<target>test_target</target>...";  // sample response from third party api …
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing

7
推荐指数
1
解决办法
7897
查看次数

RhinoJS是否支持websockets API?

我一直在使用Jasmine为Web应用程序编写BDD测试.我有兴趣使用Rhino从命令行运行这些相同的测试,我发现这个博客条目非常有帮助.然而; 我的应用程序使用pusher,它提供了一个简单的API,用于使用Web套接字在客户端之间传递事件.

我的测试在浏览器中运行良好,但是通过Rhino运行它们无法连接到推送器.Pusher提供调试流,它会显示身份验证错误或其他故障,但是当我从命令行运行测试时它不会注册任何活动.

这可能是一个简单的是或否答案,但我无法找到任何相关的文档,我是Rhino的新手,所以如果这是一个总的n00b问题,我道歉.

我的问题
正如标题所说,有没有人知道Rhino是否支持websockets API?我在这里做了别的错误,还是依赖于websockets的脚本根本不能通过Rhino工作?

我的总体目标是通过在几个EC2实例上同时运行我已经编写的茉莉花测试作为压力测试; 在重用我现有的javascript测试时,是否有一个很好的(简单的?)方法,或者我应该把它搞砸,然后用服务器端脚本语言编写我的压力测试?我知道selenium grid,但是如果可能的话,我希望避免产生新的浏览器来运行这些测试.

非常感谢!

javascript shell rhino jasmine

5
推荐指数
1
解决办法
889
查看次数

Google App Engine Python:获取服务器端的图片上传大小

我正在构建一个允许用户上传图像的Google App Engine应用程序; 我一切正常,但我很难找到一种方法来确保用户不会上传图像太大(因为我正在调整图像大小,所以这会崩溃我的python脚本).当用户上传大图像时,我收到此错误

RequestTooLargeError: The request to API call images.Transform() was too large.
Run Code Online (Sandbox Code Playgroud)

我知道GAE允许它的图像API存在大小限制,我只是想找到一种方法来处理这个服务器端; 一些东西

if (image is too large):
    inform user
else:
    proceed
Run Code Online (Sandbox Code Playgroud)

我没有运气找到正确的python代码来做到这一点; 谁能帮我吗?

python google-app-engine image

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