小编Ala*_*air的帖子

如何在JSONPath中按字符串过滤?

我有来自Facebook API的JSON响应,如下所示:

{
  "data": [
     {
       "name": "Barack Obama", 
       "category": "Politician", 
       "id": "6815841748"
     }, 
     {
       "name": "Barack Obama's Dead Fly", 
       "category": "Public figure", 
       "id": "92943557739"
     }]
 }
Run Code Online (Sandbox Code Playgroud)

我想将JSONPath应用于它,只返回类别为"Politician"的结果.从我读过的内容看来,我需要这样做:

$.data[?(@.category=='Politician')]
Run Code Online (Sandbox Code Playgroud)

但根据我发现的测试工具,这不起作用.我发现了另一个问题,表明我应该使用"eq"而不是"==",但这也不起作用.我在这里弄错了什么?

json jsonpath

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

node.js中module.parent有什么用?我如何参考require()ing模块?

我在查看node.js模块文档,并注意到每个模块都有一个属性 - module.parent.我试图使用它,但是被模块缓存烧毁了 - module.parent只有在首先需要()它的模块看来,无论当前的上下文如何.

那么它的用途是什么?有没有其他方法可以获得对当前 require()模块的引用?现在我将模块包装在一个函数中,因此它被调用为:

require("mylibrary")(module)
Run Code Online (Sandbox Code Playgroud)

但这似乎不是最佳的.

node.js node-modules

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

无法让webpack热模块更换工作

我成功地设置了WebPack - 它正在编译我的babel和SCSS文件就好了,我让手表功能正常工作.但是我也想使用热模块更换 - 而且我遇到了困难.当我在浏览器中加载开发服务器时,它会显示Cannot resolve module 'webpack/hot/dev-server'.我的配置如下所示:

import webpack from 'webpack';
import wpServer from 'webpack-dev-server';

var compiler = webpack({
    entry: [
        './src/core.js',
        'webpack/hot/dev-server'
    ],
    output: {
        path: outPath,
        filename: '[name].js'
    },
    resolveLoader: { root: path.join(MODULE_PATH, "node_modules") },
    module: {
        loaders: [
          { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
          { test: /\.scss$/, loader: "style!css!sass" }
        ]
    },
    plugins: [new webpack.HotModuleReplacementPlugin()],
    watch: true
});

var server = new wpServer(compiler, {
    contentBase: outPath,
    hot: true,
    quiet: false,
    noInfo: false, …
Run Code Online (Sandbox Code Playgroud)

webpack webpack-dev-server

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

加速WHTWebView渲染loadHTMLString-d内容的策略?

我一直在尝试在UINavigationController中堆叠WKWebViews,作为制作比PhoneGap更原生的混合应用程序的方法.它广泛使用 - 当WKWebView访问链接时我挂钩到decisionPolicyForNavigationAction,并推送一个新的ViewController及其想要的链接.

但页面加载速度很慢.我已经做了我能想到的所有事情来加速它 - 它使用loadHTMLString而不是确保一切都是本地的请求 - 我甚至尝试剥离CSS和JS,看看是否加快了速度,但没有骰子.对于一个简短的,仅限HTML,本地存储的页面,它仍然需要至少500毫秒才能显示在空的WKWebView中.我可以从调试中看出延迟不是从磁盘读取HTML,而是在loadHTMLString()和didFinishNavigation()之间的时间.

有没有人有任何解决这个问题的策略?我试着预加载视图,只是我不知道用户要点击哪个链接所以我不知道要预加载什么.

uiwebview ios wkwebview

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

我应该为我的PhoneGap应用程序缩小和组合JS文件吗?

当浏览器下载代码时,我理解缩小等背后的基本原理,但在我的PhoneGap应用程序中,它将在本地运行.如果所有资源都是本地的,那么这样做有什么意义吗?

javascript cordova

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

我如何"解雇并忘记"JS功能?(不要等待回归)

我想设置一个JS函数运行,但不要等待响应.我能想到的唯一方法是:

setTimeout(function() {
    myFunc(); 
},0);
Run Code Online (Sandbox Code Playgroud)

但这似乎......效率最低.有任何想法吗?

javascript

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

Bluebird承诺 - 如何爆炸数组,然后映射它?

如果我有一个数组:

['one.html','two.html','three.html']
Run Code Online (Sandbox Code Playgroud)

我怎么能爆炸那个数组,对它应用一连串的承诺,然后再把它重新组合起来?目前我的代码是这样的:

Promise.map(['one','two','three'], function(i) {
    dbQuery('SELECT ' + i);
}).then(function(results) {
    // This has an array of DB query results
});
Run Code Online (Sandbox Code Playgroud)

我想象的是:

Promise.map(['one','two','three'], function(i) {
    dbQuery('SELECT ' + i);
})
.explode()
.then(function(result) {
    // Individual result
})
.combine()
.then(function(results) {
    // Now they're back as an array
});
Run Code Online (Sandbox Code Playgroud)

现在,我知道Bluebird没有这些功能,所以我想知道正确的Promise-y方式是做什么的?

javascript promise bluebird

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

UNNotificationServiceExtension:内存限制?

我正在尝试实现UNNotificationServiceExtension,但我的代码似乎经常失败,只是说明了

Program ended with exit code: 0"
Run Code Online (Sandbox Code Playgroud)

我试图在扩展中使用FMDB Sqlite3模块,似乎我可能会遇到扩展内的内存限制.这些扩展中是否有任何记录的内存限制?是否有任何策略可以帮助我将它们考虑在内,或者我只是要接受我不能将复杂的功能放入扩展中?

通过Instruments运行它表明它只达到3.24MB.NSExtensionMain占68%,所以我认为我不能把它降低很多.

ios ios10

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

对base64 URI支持的更好测试(我可以在JS中创建一个大的base64编码图像吗?)

我正在使用Modernizr来检测用户正在运行的浏览器支持的功能,到目前为止一切顺利.但在测试base64兼容性时,我遇到了理论上的问题.这个支持的补丁在这里详细介绍,并且可以工作 - 除了IE8的奇怪情况 - 它只允许最高32KB的base64编码图像.

我真的不想在我的JS文件中嵌入一个32KB长的base64字符串,它会增加一些疯狂的膨胀.那么,我可以使用JS创建一个32KB的有效图像吗?我正在考虑在字符串中重复某种模式,直到它达到32KB的长度,这种事情.或者可能使用现有的小字符串(如Modernizr补丁中的字符串)并在最后添加垃圾数据,这仍然会产生有效的图像.

除了如何操作现有图像之外,我对base64编码几乎一无所知.有没有人有任何想法?

javascript html5 base64 modernizr data-uri

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

在WKWebView的iframe中评估JavaScript?

我已经成功设置了一个WKWebView ScriptMessageHandler来接收来自Webview内部的消息。然后,我evaluateJavaScript用于将响应发送回Webview。当所有操作都在视图的主框架上执行时,这可以很好地工作。

但是,当我尝试在iFrame中执行此操作时,我遇到了困难。我仍然在消息处理程序中接收到该消息(完整WKFrameInfo地告诉我消息的来源),但是我找不到任何evalateJavaScript针对该框架运行的方法。我可以window.frames在评估的JavaScript中使用hack,但是如果iFrame与父框架的来源不同,那么我将遇到跨域错误。

有什么方法可以识别WKWebview中的框架并评估JS?

javascript ios wkwebview

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