小编maj*_*son的帖子

我如何检查和调整:在浏览器中的伪元素之前和之后?

我创建了一些相当复杂的DOM元素,其中包含:after伪元素,我希望能够在Chrome Inspector或Firebug或同等版本中检查和调整它们.

尽管此WebKit/Safari博客文章(日期为2010年)中提到了此功能,但我无法在Chrome或Safari中找到此功能.Chrome确实至少有要检查的复选框:hover,:visited和:active状态,但是:before和:after无处可见.

此外,这篇博文(日期为2009年!)提到IE开发工具中存在此功能,但我目前正在使用Mac OS,所以这对我没有帮助.此外,IE不是我主要针对的浏览器.

有没有办法检查这些伪元素?

编辑:除了错误的Firebug无法检查这些元素,我发现Opera非常擅长于Inspecting:before和:after元素开箱即用.

css firefox firebug google-chrome google-chrome-devtools

83
推荐指数
5
解决办法
6万
查看次数

MongoDB查询:字段要么不存在要么具有特定值

我想查询mongo集合中的记录,这些记录要么没有名为'scheme'的字段的值,要么显式为'scheme'赋值'http'.听起来很简单,但事实证明这个问题比最初出现的问题更复杂.

因为db.collection.find({'scheme': None})返回'scheme'未定义的所有记录(没有索引字段),我最初认为以下内容可行:

db.collection.find({'scheme': {'$in': ['http', None]}})
Run Code Online (Sandbox Code Playgroud)

但是,这似乎排除了'scheme'未定义的值,因此我只能假设它正在搜索其中scheme为'http'或明确定义为的记录None.这似乎有点违反直觉,但我们有它.我的第二次尝试如下:

db.collection.find( {'$or': [{'scheme': {'$exists': False}}, {'scheme': 'http'}]})
Run Code Online (Sandbox Code Playgroud)

这也排除了方案未定义的结果.这一次,我甚至无法想到为什么失败的逻辑原因.

任何想法为什么会失败,以及如何让它按照需要运作?

谢谢

编辑:我以为我注意到我正在通过Python(pymongo)执行此查询,这解释了None(通过Javascript的null)

mongodb pymongo

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

当AsyncHTTPClient接收块时,Tornado会传输HTTP响应

我正在尝试编写一个Tornado请求处理程序,该处理程序发出异步HTTP请求,并在从它的异步请求接收数据时将数据返回给客户端.不幸的是,在完成所有Async HTTPRequests之前,我无法让Tornado将任何数据返回给客户端.

我的请求处理程序的演示如下.

class StreamingHandler(web.RequestHandler):

    all_requested = False
    requests = []

    @web.asynchronous
    def get(self):

        http_client = httpclient.AsyncHTTPClient()
        self.write('some opening')

        big_request = httpclient.HTTPRequest(url='[some_big_request]', streaming_callback=self.on_chunk)
        small_request = httpclient.HTTPRequest(url='[some_small_request]', streaming_callback=self.on_chunk)

        self.requests.append(http_client.fetch(big_request, callback=self.on_response_complete))
        self.requests.append(http_client.fetch(small_request, callback=self.on_response_complete))

        self.all_requested = True

    def on_chunk(self, chunk):
        self.write('some chunk')
        self.flush()

    def on_response_complete(self, response):
        if self.all_requested and all(request.done() for request in self.requests):
            self.write('some closing')
            self.finish()

我希望这个处理程序的GET请求最初返回文本'some opening',然后很快为小请求返回'some chunk',然后为更大的请求返回'some chunk'(可能多次),之后最后返回'关闭',并关闭连接.相反,在建立连接之后,客户端等待几秒钟以完成所有请求,然后在关闭之前立即接收所有HTTPResponse.

我如何从龙卷风中获得理想的行为?

提前致谢!

python asynchronous tornado

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

已安装PyCurl但未找到

我一直在尝试使用easy_install在virtualenv中安装pycurl,它似乎正确安装:

(xxx) $ easy_install pycurl
Searching for pycurl
Reading http://pypi.python.org/simple/pycurl/
Reading http://pycurl.sourceforge.net/
Reading http://pycurl.sourceforge.net/download/
Best match: pycurl 7.19.0
Downloading http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz
Processing pycurl-7.19.0.tar.gz
Running pycurl-7.19.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-B2W9dY/pycurl-7.19.0/egg-dist-tmp-RmIsVr
Using curl-config (libcurl 7.19.7)
src/pycurl.c:85:4: warning: #warning "libcurl was compiled with SSL support, but configure could not determine which " "library was used; thus no SSL crypto locking callbacks will be set, which may " "cause random crashes on SSL requests"
src/pycurl.c: In function ‘do_multi_info_read’:
src/pycurl.c:2843: warning: call to ‘_curl_easy_getinfo_err_string’ declared with …
Run Code Online (Sandbox Code Playgroud)

python curl libcurl pycurl

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

在Chrome扩展程序中使用时,获取API不会发送会话Cookie

我正在尝试制作一个Chrome扩展程序,它使用Fetch API从Github上的Pull Requests中删除一些细节,然后将它们显示在其他位置.当我尝试在Github上使用非公共存储库时,我遇到了一些问题.我认为这与CSRF保护以及管理Chrome扩展程序有权访问会话Cookie的规则有关.

我在扩展程序中有以下内容manifest.json:

"content_scripts": [{
    "matches": [
        "*://github.com/*/*/pulls"
    ],
    "js": ["script/underscore-1.8.3.min.js", "script/content.js"]
}],
"permissions": [
    "tabs",
    "activeTab",
    "*://github.com/*",
    "webNavigation"
]
Run Code Online (Sandbox Code Playgroud)

但是当我从我的内部运行以下内容时script/content.js:

fetch('/redacted/redacted/pull/4549', {credentials: 'same-origin'}).then((response) => {
    return response.text();
}).then((text) => {
    // do cool stuff
})
Run Code Online (Sandbox Code Playgroud)

这会产生Github的404响应.使用Chrome Inspector的网络标签检查此请求,我可以看到它没有向请求发送我的GitHub会话标头.

如果我使用Inspector中的Javascript提示发出相同的请求,我可以看到200响应,我可以看到它正在发送我的会话cookie.

我的理解是在我的指定Github域manifest.json意味着我的扩展可以访问我的内容脚本中的会话数据,这是不正确的?我应该怎么做才能对此受保护内容提出有效请求?

xmlhttprequest csrf google-chrome-extension cors fetch-api

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

如何在不重新启动的情况下重新加载Postgres.app配置?

通过定期的postgres安装,我可以通过发送SIGHUP到postgres进程或运行来实现pg_ctl reload.但是,对于Postgres.app,我不确定在哪里发送SIGHUP(到Postgres.app进程,或其中一个工作人员?),并试图运行pg_ctl reload(在跟踪它之后/Applications/Postgres.app/Contents/Versions/9.3/bin只产生关于PG_DATA未设置的投诉.

那么,如何在不重新启动整个服务器的情况下重新加载Postgres.app的配置文件呢?这可能吗?

postgresql postgres.app

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

使用 zeep / python 创建 XML 序列

我正在使用 zeep (Python 3.6) 与 SOAP API 交互,并使用包含此部分的 WSDL 模式:

<xs:element name="passengers">
    <xs:complexType>
        <xs:sequence>
            <xs:element maxOccurs="unbounded" name="passenger" type="com:PassengerType"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

所以我希望我的 zeep 生成的 XML 看起来像这样:

<book:passengers>
    <book:passenger>
        ...redacted...
    </book:passenger>
</book:passengers>
Run Code Online (Sandbox Code Playgroud)

我用 Zeep 实现这一目标的第一次尝试如下所示:

passengers = [factories.PassengerType()]
Run Code Online (Sandbox Code Playgroud)

但是,将其发送到我的 SOAP API 时,会产生以下错误:

File "/usr/local/lib/python3.6/site-packages/zeep/xsd/elements/element.py", line 220, in validate
  "Missing element %s" % (self.name), path=render_path)
zeep.exceptions.ValidationError: Missing element passenger (createBookingRecordRequest.passengers)
Run Code Online (Sandbox Code Playgroud)

我相信这是因为我的 'passengers' 属性应该包含一个带有标签名称“passenger”的 Zeep 对象,该对象将包含我的元素列表。我已经尝试修补zeep.xsd.AnyType以实现这一目标,但尚未成功。

任何建议,将不胜感激。

python xsd soap wsdl zeep

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

iOS 7中引用计数的更改?

我正在努力修复一些未使用ARC构建的遗留应用程序上的iOS 7显示问题,并且dealloc在iOS版本6和7之间的方法遇到了一些不一致的行为.我找不到任何其他提及这些任何文件或社区讨论的变化,所以我想知道这里是否有人可以了解这里发生的事情?

我以前的代码(在iOS6中工作,看起来像这样):

@interface MyViewController()
@property (retain) AdHandler *adHandler;
@end

@implementation MyViewController

@synthesize adHandler = _adHandler;

- (id) initWithAdHandler:(AdHandler*)anAdHandler
{
    self = [super init];
    _adHandler = [anAdHandler retain];
    return self;
}

- (void)dealloc
{    
    [super dealloc];

    [_adHandler release];
    _adHandler = nil;
}

...

@end
Run Code Online (Sandbox Code Playgroud)

当通过在iOS 6中单步调试代码,我发现后dealloc声明中,[_adHandler retainCount]仍然是积极的,而对象仍然是可用的.

然而,在iOS 7中,在dealloc语句之后,retainCount以某种方式命中零,并且_adHandler对象已经dealloc'd,因此我的调用release导致了EXC_BAD_ACCESS.

我可以通过在[adHandler release]通话前移动我的电话来解决这个dealloc问题,但我的问题是为什么会发生这种情况?为什么dealloc发布它不负责的对象?有没有关于为什么dealloc行为以这种方式改变的任何文档?

xcode reference-counting objective-c ios ios7

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