小编Mas*_*iar的帖子

JavaScript事件循环和Web工作者

所以我和一位同事就JavaScript事件循环和Web Workers的使用进行了长时间的讨论.在单个Web页面中,不同的Web Workers具有不同的堆栈,堆和消息队列,在此处形成,具体为:

A web worker or a cross-origin iframe has its own stack, heap, and message
queue. Two distinct runtimes can only communicate through sending messages via
the postMessage method. This method adds a message to the other runtime if the
latter listens to message events.
Run Code Online (Sandbox Code Playgroud)

但是在同一个事件循环中执行的所有消息,或者每个Web Worker是否都有自己的事件循环?

我问这个是因为我在一个页面中有两个Web Worker,一个按顺序执行计算量很大的操作,而另一个只处理一个WebRTC连接.我不会详细介绍,但在我看来,计算量很大的Web Worker从JavaScript事件循环中消耗了大量的计算时间,而其他工作者只需要保持连接活动(我想通过心跳)无法这样做,连接最终会丢失.

这就是我的信念.如果不是这种情况,并且两个Web Workers在不同的事件循环上工作,那么我无法解释为什么当计算Web Worker上的负载很重时连接丢失(当负载很轻时连接不会丢失).

javascript web-worker webrtc

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

MongoDB按"数字"升序排序

我正在尝试用mongoose和MongoDB创建一个注册表单.我有一个唯一的密钥,UserId,每次我创建一个新的条目时,我想在数据库中获取最大的UserId并将其增加一个.我尝试过,db.user.find({}).sort({userId: 1});但似乎没有工作.谢谢

Masiar

mongoose mongodb

3
推荐指数
2
解决办法
6643
查看次数

访问PHP中名称中带空格的文件夹中的文件

我想在PHP中的文件夹中打开一个文件.问题是包含该文件的文件夹可能在名称中有空格.我用来打开文件(但不起作用)的代码如下:

$myFile = "path/to the/file.txt";
$myFile = str_replace(' ', '\ ', $myFile);
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);
echo $theData;
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我试图通过\在空间前放置来解决问题,但这并不能解决问题.我仍然收到以下错误:

Warning: fopen(path/to\ the/file.txt) [function.fopen]: failed to open stream: No such file or directory in /path/to/my/website on line 49
Run Code Online (Sandbox Code Playgroud)

有关如何解决这个问题的任何想法?

谢谢!

php

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

INVALID_STATE_ERR:通过websocket发送blob时的DOM异常11

我正在尝试通过websockets发送dataURItoBlob(canvas.get()[0].toDataURL('image/png'));以这种方式获得的blob :

connection.send(JSON.stringify({
                cmd: "fwd",
                msg: msg,
                p_id: worker_id,
            })
Run Code Online (Sandbox Code Playgroud)

这里msg是块刚刚创建.如果我尝试通过执行msg = ""+msg它来发送blob,但它只发送字符串[Object object],这对我来说是无用的.

如果我msg = JSON.stringify(msg)在发送之前尝试做,它会给出与主题标题相同的错误.

如果我尝试发送数据而不将其封装在blob中(因为msg = canvas.get()[0].toDataURL('image/png');)我有相同的行为,如上所述.

我该怎么做才能发送数据?谢谢

javascript html5

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

Node-gyp无法编译nodejs扩展名('致命错误,未找到线程'文件)

我有一个由同事做的节点扩展,我正在尝试编译它node-gyp configure(一切都好)然后node-gyp build(fatal error, 'thread' file not found).现在,我相信这是gcc的一个问题,我在某处读到了我需要的标志-stdlib=libc+++.我的binding.gyp文件看起来像这样:

{
    "targets": [
    {
        "target_name": "overcpu",
        "sources": [ "overcpu.cpp" ],
        "cflags" : [ "-stdlib=libc++" ]
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误.我安装了XCode和开发人员工具,而且我gcc通过安装不满意brew.不幸的是我一直收到同样的错误.通过gcc -v我得到以下输出:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.3.0
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

我的问题是否有问题gcc,或者它node-gyp(v1.0.1)是否让我发疯?

非常感谢!

c++ gcc node.js node-gyp

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

Passport.js总是执行"failureRedirect"

首先,我对Passport.js很新,所以这可能最终成为一个非常天真的问题.我有这个作为注册的策略:

// Configuring Passport
var passport = require('passport');
var expressSession = require('express-session');
var LocalStrategy = require('passport-local').Strategy;
var FacebookStrategy = require('passport-facebook');
app.use(expressSession({secret: 'mySecretKey'}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

//[...]

  passport.use('signup', new LocalStrategy({
     name : 'name',
     password : 'password',
     email : 'email',
     passReqToCallback : true 
   },
   function(req, username, password, done) {
     findOrCreateUser = function(){
       // find a user in Mongo with provided username
       User.findOne({'name':username},function(err, user) {
         // In case of any error return
         if (err){
           console.log('Error in SignUp: '+err);
           return done(err);
         }
        // already …
Run Code Online (Sandbox Code Playgroud)

registration node.js passport.js

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

如何从 Node.js/Express 服务器调用 GraphQL API?

我最近为我的 Express 服务器实现了一个架构和一些解析器。我成功地测试了它们/graphql,现在我想调用我在从 REST API 访问时实现的查询,如下所示:

//[...]
//schema and root correctly implemented and working
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));

//I start the server
app.listen(port, () => {
  console.log('We are live on ' + port);
});

//one of many GET handlers
app.get("/mdc/all/:param", function(req, res) {
    //call one of the (parametrized) queries here
    //respond with the JSON result
});
Run Code Online (Sandbox Code Playgroud)

如何在 GET 处理程序中调用我用 GraphQL 定义的查询?我如何向他们传递参数?

谢谢!

node.js express graphql

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

查询graphiql导致Apollo error forward不是函数

我有一个带有 GraphQL 的快速后端,当我去/graphiql手动执行一些搜索时它可以工作。我的 React 前端正在尝试在后端执行搜索。以下代码应异步执行查询:

const data = await this.props.client.query({
    query: MY_QUERY,
    variables: { initials: e.target.value }
});
console.log(data);
Run Code Online (Sandbox Code Playgroud)

WhereMY_QUERY是之前定义的,代表一个我知道有效并已在/graphiql. 在我做出反应组分I出口它这样做,因为export default withApollo(MyComponent)这样它具有client可变props

index.js我通过 Apollo 定义的文件中,连接到/graphiql以执行查询:

//link defined to deal with errors, this was found online
const link = onError(({ graphQLErrors, networkError }) => {
    if (graphQLErrors)
        graphQLErrors.map(({ message, locations, path }) =>
        console.log(
            `[GraphQL error]: Message: ${message}, Location: ${locations}, Path: ${path}`,
        ),
        ); …
Run Code Online (Sandbox Code Playgroud)

apollo graphql react-apollo graphiql

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

标签规范内的玉变量渲染

我有一个像这样的玉页:

table
    th Site Name
    th Deadline
    th Delete Transaction

    - if (transactions != null)
        each item in transactions
            tr
                td= item.item_name
                td
                    span(id='countdown' + item.timeout + ')= item.timeout
                td
                    span(style='cursor: pointer;', onclick='deleteTransaction("=item.uniqueId")')= "X"

            button(id='confirmButton', onclick='confirm();')Confirm
Run Code Online (Sandbox Code Playgroud)

正如您在span属性中看到的那样,我尝试以两种不同的方式放置局部变量,但它不起作用.关于第一种方式,我收到一个token ILLEGAL错误,而第二种方式只是在我的JavaScript中写入类似的东西deleteTransaction("=item.uniqueId");.我知道答案是非常愚蠢的,但是Jade doc(即使它有所改进)也一次又一次没有帮助我.

谢谢

node.js pug

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

innerHTML不尊重缩进

我在客户端有一个代码,它通过带有node.js后端的socket.io接收一些数据.我收到一些缩进数据(这是一些字符串格式的代码).我可以提醒代码,我看到它在警报中缩进,但是当我document.getElementById('myDiv').innerHTML = receivedData.indentedData输出时输出的数据myDiv不是缩进的,而只是在一行中.

在填充HTML元素时,您是否知道在某些字符串中使用缩进的方法?

为了更准确,我以这种形式提醒数据:

class Motto {
  public static void main(String[] args) {
    System.out.println("Java rules!");
  }
}
Run Code Online (Sandbox Code Playgroud)

但我所看到的myDiv是:

class Motto { public static void main(String[] args) { System.out.println("Java rules!"); } }
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript indentation

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

jQuery通过$(this)遍历HTML

我有一个HTML文档,结构如下:

<section id="page1" data-role="page"> 
    <a href="#" id="next-section" class="next-section" style=" cursor:e-resize"><div class="arearight" alt="go right" ></div></a>
    <a href="#" id="prev-section" class="prev-section" style=" cursor:w-resize"><div class="arealeft" alt="go left" ></div></a>
...   
</section>

<!-- more sections -->
Run Code Online (Sandbox Code Playgroud)

我有以下代码来遍历它

$(":jqmData(role='page')").each(function() {
    $(this).bind("swipeleft" goLeft); //goLeft and goRight are defined and working
    $(this).bind("swipeleft", goRight);
    //...
}
Run Code Online (Sandbox Code Playgroud)

轻扫工作正常,但我想绑定到next-sectionprev-section一个click行为调用goLeftgoRight,但我不知道如何通过访问这些$(this)对象.有没有人知道如何去找他们?

谢谢

javascript jquery jquery-mobile

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

如何避免在CSS中继承opacity属性?

我有一个divopacity: 0.7;在CSS文件中设置的元素,因为我希望它里面的文本是不透明的.我在其中显示一些图像div,但图像显示为继承的不透明度属性.结果是不透明的图像.

是否有可能为图像提供CSS属性而不是继承div包含它们的不透明度?如果没有,我怎么能避免图像不透明?

谢谢.

css opacity

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