鍍金池/ 問答/ 網(wǎng)絡安全問答
下墜 回答

產(chǎn)生無線循環(huán)的根本原因是第一次執(zhí)行后a=2,while進入死循環(huán),你可以試著改為,這時候會一直打印a的值2

while a != 1:
    print(a)#如果不加這個print就會無限循環(huán),為什么
#coding:utf-8

這是我對你的代碼改了一些,加了一些注釋,你看一下

 def collatz(number):
        if number % 2 == 0:     #第一次,4%2 = 0,進入下一行,第2,3,4...次,2%2 = 0,進入下一行
            a = number // 2     #第一次,,a=2,第2,3,4...次,a=1,執(zhí)行13行 print '單個while循環(huán)中,執(zhí)行collatz(2)的結(jié)完畢'
            print(a)
    
        else:
            a = 3 * number + 1
            print(a)
        while a != 1:          #進入死循環(huán),
            collatz(a)         #進入collatz(2),第2次
            print(a)  # 如果不加這個print就會無限循環(huán),為什么
        print '單個while循環(huán)中,執(zhí)行collatz(2)的結(jié)完畢'
        return a
    print(collatz(4))
紓惘 回答

它在以它的方式等著歡迎你
MongoDB Wire Protocol over TCP/IP,不是 HTTP 協(xié)議哦
http - How does the protocol "mongodb" work? - Super User

背叛者 回答

在這個方法里TaokeUtil.write(json, response); 你都對response做了些啥啊?

傲嬌范 回答

你這已經(jīng)是線性時間復雜度了,再低的話除非是對數(shù)時間

孤客 回答

1、利用progress-stream獲取上傳進度

如果只是想在服務端獲取上傳進度,可以試下如下代碼。注意,這個模塊跟express、multer并不是強綁定關(guān)系,可以獨立使用。

var fs = require('fs');
var express = require('express');
var multer  = require('multer');
var progressStream = require('progress-stream');

var app = express();
var upload = multer({ dest: 'upload/' });

app.post('/upload', function (req, res, next) {
    // 創(chuàng)建progress stream的實例
    var progress = progressStream({length: '0'}); // 注意這里 length 設(shè)置為 '0'
    req.pipe(progress);
    progress.headers = req.headers;
    
    // 獲取上傳文件的真實長度(針對 multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

    // 獲取上傳進度
    progress.on('progress', function (obj) {        
        console.log('progress: %s', obj.percentage);
    });

    // 實際上傳文件
    upload.single('logo')(progress, res, next);
});

app.post('/upload', function (req, res, next) {
    res.send({ret_code: '0'});
});

app.get('/form', function(req, res, next){
    var form = fs.readFileSync('./form.html', {encoding: 'utf8'});
    res.send(form);
});

app.listen(3000);

2、獲取上傳文件的真實大小

multipart類型,需要監(jiān)聽length來獲取文件真實大小。(官方文檔里是通過conviction事件,其實是有問題的)

    // 獲取上傳文件的真實長度(針對 multipart)
    progress.on('length', function nowIKnowMyLength (actualLength) {
        console.log('actualLength: %s', actualLength);
        progress.setLength(actualLength);
    });

3、關(guān)于progress-stream獲取真實文件大小的bug?

針對multipart文件上傳,progress-stream 實例子初始化時,參數(shù)length需要傳遞非數(shù)值類型,不然你獲取到的進度要一直是0,最后就直接跳到100。

至于為什么會這樣,應該是 progress-steram 模塊的bug,看下模塊的源碼。當length是number類型時,代碼直接跳過,因此你length一直被認為是0。

    tr.on('pipe', function(stream) {
        if (typeof length === 'number') return;
        // Support http module
        if (stream.readable && !stream.writable && stream.headers) {
            return onlength(parseInt(stream.headers['content-length'] || 0));
        }

        // Support streams with a length property
        if (typeof stream.length === 'number') {
            return onlength(stream.length);
        }

        // Support request module
        stream.on('response', function(res) {
            if (!res || !res.headers) return;
            if (res.headers['content-encoding'] === 'gzip') return;
            if (res.headers['content-length']) {
                return onlength(parseInt(res.headers['content-length']));
            }
        });
    });

參考鏈接

https://github.com/expressjs/...
https://github.com/freeall/pr...

抱緊我 回答

這里的toString()方法不是這個實例obj內(nèi)的方法
是Object原型的方法
Object.prototype.toString()
https://developer.mozilla.org...

陌如玉 回答

自己排查解決問題,方法是可以通過動態(tài)改變nzScroll的x,加大可以拉寬列寬

浪婳 回答

有大佬回答一下么?
動不動就踩,有意思嗎?踩也說一下原因啊,我好改一下!

奧特蛋 回答

tinymce支持Promise,所以可以在init完成后,利用回調(diào)函數(shù),完成操作

tinymce.init({
       // config
}).then( resolve=>{
        // init完成后,回調(diào)
        // doSomething
})
命于你 回答

clipboard.png

body 高度不夠,.container 后面跟隨的div 沒有清除浮動造成的

荒城 回答

如果只是想做到一個工作線程+n個io線程的話,不管是阻塞還是非阻塞都是可以做到的。

怪痞 回答

寫了一個簡單的例子,希望能幫助你理解,并能根據(jù)你的實際需求去選擇使用怎樣的方式解決問題!

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>tab</title>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in mocks">
                <input type="text" v-model="item.val" v-if="item.isInp">
                <span v-else>{{item.val}}</span>
            </li>
        </ul>
    </div>
    <script src="https://cdn.bootcss.com/vue/2.5.15/vue.min.js"></script>
    <script type="text/javascript">
        new Vue({
            el: '#app',
            data() {
                return {
                    mocks: [
                    {
                        isInp: true,
                        val: "1"
                    },
                    {
                        isInp: true,
                        val: "2"
                    },
                    {
                        isInp: false,
                        val: "3"
                    },
                    {
                        isInp: true,
                        val: "4"
                    }]
                }
            },
            methods: {
            }
        })
    </script>
</body>
</html>

簡易組件版:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>tab</title>    
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="item in mocks">
                <my-component v-bind="item"></my-component>
            </li>
        </ul>
    </div>
    <script src="https://cdn.bootcss.com/vue/2.5.15/vue.min.js"></script>
    <script type="text/javascript">
        //全局組件注冊
        Vue.component('my-component', {
            template: '<input type="text" v-model="val" v-if="isInp"><span v-else>{{val}}</span>',
            props: ['isInp','val']
        })
        new Vue({
            el: '#app',
            data() {
                return {
                    mocks: [
                    {
                        isInp: true,
                        val: "1"
                    },
                    {
                        isInp: true,
                        val: "2"
                    },
                    {
                        isInp: false,
                        val: "3"
                    },
                    {
                        isInp: true,
                        val: "4"
                    },]
                }
            },
            methods: {
            }
        })
    </script>
</body>
</html>
關(guān)于組件的官方文檔鏈接: https://cn.vuejs.org/v2/guide...

希望我的回答對你有所幫助!
司令 回答

No PostCSS Config found 檢查一下您打包配置

逗婦惱 回答

用正則去匹配或是開始不加前綴,后面再自動加上去

默念 回答

官方pecl沒有,網(wǎng)上也沒有,建議本地安裝一個,引入類文件,直接調(diào)用。

疚幼 回答

clipboard.png

抱歉 可能有點跑題 如果我遇到這個問題 可能不會用rem來做

如果是導航條的話,我用 inline-block + 百分比寬度來做

<div class="outer">
    <div style="background-color: red"></div>
    <div style="background-color: orange"></div>
    <div style="background-color: yellow"></div>
    <div style="background-color: green"></div>
    <div style="background-color: blue"></div>
</div>

<style>
    .outer {
        /* 去掉inline-block中間的間隙 */
        font-size: 0;
    }

    .outer div {
        display: inline-block;
        width: 20%;
        height: 10px;
    }
</style>

或者是 float

<div class="outer">
    <div style="background-color: red"></div>
    <div style="background-color: orange"></div>
    <div style="background-color: yellow"></div>
    <div style="background-color: green"></div>
    <div style="background-color: blue"></div>
</div>


<style>
    .outer div {
        float: left;
        width: 20%;
        height: 10px;
    }

    .outer:after {
        /* 清除浮動 */
        content: '';
        display: table;
        clear: both;
    }
</style>

效果:

clipboard.png

下墜 回答

mock.js是隨機生成的,你的問題其實很好解決,建議可以看看這個:VUE下如何高效快捷的使用MOCK數(shù)據(jù)