小编How*_*ard的帖子

如何捕获`WebSocket连接到'ws:// xxx:nn'失败:连接在收到握手响应错误之前关闭?

假设我有一个以端口启动的节点服务器nn,并且没有任何WebSocket服务.

问题是我的客户端尝试将WebSocket服务连接到此服务器.

显然,它应该无法连接到服务器.

但我无法捕捉到这个错误,我的客户端代码如下:

try {
    this.ws = new WebSocket('ws://xxx:nn');
} catch ( e ) {
    fallback();
    console.warn(e);
}
Run Code Online (Sandbox Code Playgroud)

我的期望是fallback在连接失败时调用方法,但实际上我可以通过上面捕获它的错误try...catch

有谁知道如何在我的用例中捕获错误?

javascript websocket

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

如何在propTypes中声明样式?

启用了forbid-prop-types规则后,eslint禁止使用style: React.PropTypes.object,shape建议使用.

但是真的有必要为此目的定义所有可用的属性吗?

DEMO.propTypes = {
    style: React.PropTypes.shape({
        color: React.PropTypes.string,
        fontSize: React.PropTypes.number,
        ...
    })
};
Run Code Online (Sandbox Code Playgroud)

定义代码太多了!

eslint react-native

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

AngularJs:使用$ routeProvider调用控制器两次

模块路线:

var switchModule = angular.module('switchModule', []);

switchModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
    when('/build-content', {templateUrl: 'build-content.html', controller: BuildInfoController});
}]);
Run Code Online (Sandbox Code Playgroud)

控制器:

function BuildInfoController($http, $scope){
    alert("hello");
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<html ng-app="switchModule">
...
<body>
    <ul>
        <li><a href="#build-content"/></a></li>
    </ul>
    <div class="ng-view"></div>
</body>
...
Run Code Online (Sandbox Code Playgroud)

每次当我点击超链接''时,'BuildInfoController'将被调用两次.我错过了什么吗?

controller angularjs

45
推荐指数
5
解决办法
4万
查看次数

如何使`ngOnChanges`在`angular2`中工作

我的孩子组件如下:

'use strict';

import {Component, Input, OnInit, OnChanges, ChangeDetectionStrategy, ElementRef} from 'angular2/core';

@Component({
    changeDetection: ChangeDetectionStrategy.OnPush,
    selector: 'my-app',
    template: ''
})
export class MyApp implements OnInit {

    @Input() options: any;

    constructor(private el: ElementRef) {
    }

    ngOnInit() {

    }

    ngOnChanges(...args: any[]) {
        console.log('changing', args);
    }

}
Run Code Online (Sandbox Code Playgroud)

和Parent组件如下:

'use strict';

import {Component, Input} from 'angular2/core';
import {MyApp} from './MyApp';

@Component({
    selector: 'map-presentation',
    template: `<my-app [options]="opts"></my-app>
    <button (click)="updates($event)">UPDATES</button>
    `,
    directives: [MyApp]
})
export class MainApp {

    opts: any;

    constructor() {
        this.opts = {
            width: …
Run Code Online (Sandbox Code Playgroud)

angular

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

javascript意外令牌.用`{}.toString()`

我的问题是为什么跟随不正确

function hello () {
    {}.toString();//Unexpected token .
}
Run Code Online (Sandbox Code Playgroud)

但是正确的return:

function hello () {
    return {}.toString();
}
Run Code Online (Sandbox Code Playgroud)

不知道解析器如何为不正确的版本工作,被{}视为BlockStatement?如果是,那为什么呢?

感谢您的详细解释

javascript syntax-error

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

如何使用GeckoFX作为XULRunner的包装器在javascript中调用C#方法

我在我的项目中使用GeckoFX16xulrunner-16.0.2.en-US.win32.问题是,我想在javascript中调用C#方法.

我好奇,有办法做到这一点吗?

如下所示:

C# 部分:

private GeckoWebBrowser weBrowser;
    public browser()
    {
        InitializeComponent();
        Gecko.Xpcom.Initialize("xulrunner");
        weBrowser = new GeckoWebBrowser();
        weBrowser.Parent = this;
        weBrowser.Dock = DockStyle.Fill;
        weBrowser.Navigate("test.html");
    }

    public string loadData(){
        //load data from local file.
        return str;
    }
Run Code Online (Sandbox Code Playgroud)

javascript 部分:

<script type='text/javascript'>
    var data = window.loadData();
    alert(data);
</script>
Run Code Online (Sandbox Code Playgroud)

我是这个领域的新人,如果可能的话我会很感激!

javascript c# geckofx

5
推荐指数
2
解决办法
9084
查看次数

如何在nodejs中拥有路径别名?

假设我有以下代码:

var mod1 = require('../../../../ok/mod1');
var mod2 = require('../../../info/mod2');
Run Code Online (Sandbox Code Playgroud)

这不像上面那样编码,我想知道是否有一种方法可以像nodejs中的webpack-resolve-root一样配置根解析器?

据我所知,NODE_PATH可以用来代替根node_modules,但这不是我想要的.我想让解析器按顺序解析多个文件夹.

root resolve node.js

5
推荐指数
3
解决办法
5323
查看次数

如何使用需要`sudo`权限的基于`electron`的app更新文件

我想通过编写应用程序electron,但要求是更新需要root权限的文件.

它很容易实现cli,就像sudo vi xxx.

是否可以通过更新文件electron

sudo electron

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

如何与blame命令一起显示提交消息?

我有以下命令来显示特定的责任信息

git blame -L 11,13 <file-path>

但它不会给我提交消息,我必须运行另一个命令,可能是git show <hash>为了获取提交消息。

提交消息在这里很重要,因为我不需要知道谁做了这些更改,但也不需要知道为什么。

我尝试过git log --date=iso -L 11,13:<file-path> --format="%h %an %ad %s",看起来不错,但是显示了太多详细的差异信息,而且我不需要那么多信息。

以下是我所需要的:

  1. 提交哈希值
  2. 作者
  3. 作者日期
  4. 提交消息
  5. 更新内容

git

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

如何通过使用inno设置在卸载期间添加确认任务?

我的用户数据位于用户的文件夹中,例如:C:\ Users \ Administrator \ profile.ini

我知道如何删除它:

[UninstallDelete]
Type: files; Name: "C:\Users\{username}\profile.ini"
Run Code Online (Sandbox Code Playgroud)

问题是我不想默默地删除此文件,我需要通过复选框将最终操作告知最终用户,例如“ []删除用户数据”。如果最终用户检查了该文件,请删除该文件,否则什么也不做。

我有两个问题:

  1. 有没有办法获取当前记录用户的文件夹?我认为这不是像我在“ C:\ Users {username} \”上面所做的那样的好方法。但是我找不到这样做的任何常数。

  2. 可以在卸载开始时添加一个复选框吗?

inno-setup

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

如果我的网站在SPA中开发,谷歌会否惩罚搜索引擎的预渲染服务?

我曾经多次说过"如果你想要SEO,你就不应该在SPA中开发你的网站".

有人告诉我,如果您的SPA index.html向最终用户返回空白,如下所示:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>demo</title>
        <script type="text/javascript" src="startup.js"></script>
    </head>
    <body>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

并且您为搜索引擎使用预呈现服务,爬虫将检索完整呈现的html内容.这意味着最终用户获取和爬虫获取的html内容是不同的.

如果我们这样做,我的网站将受到谷歌的惩罚.

有人可以给我一份关于此的官方文件吗?

seo single-page-application

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