鍍金池/ 問答/ HTML問答
誮惜顏 回答

我覺得很可能是你接口處理的邏輯太多,接口超時了

哚蕾咪 回答

vue-cli 2.9.4 bug,2.9.5已解決,請升級到最新版

npm install -g vue-cli@latest
孤影 回答

現(xiàn)在好像不用decodeURIComponent了。
你可以打印下options,然后上線。等上線后,打開線上版本,打開調試。再掃碼,就可以看到控制臺打印出來的數(shù)據是什么格式了。

紓惘 回答
String s;
        try {
            s="hello world";
        } catch (Exception e) {
            s="123";//這里也要賦值
            e.printStackTrace();
        }
      System.out.println(s);//catch如果不賦值,如果try里面的賦值代碼出現(xiàn)異常,s就沒有值了
影魅 回答

函數(shù)或者是程序,本質都是包含了對問題的處理過程。

1.首先, 明確要做什么? 有什么?

一個數(shù)組, 進行計算, 打印結果。

2.其次, 可以抽出四個函數(shù)。

getA() getAverage() getCount() print()

3.最后, 用簡潔的邏輯處理問題。

main() {

A = getA()

ave = getAverage( A )

count = getCount(A, ave)

print(ave)

print(count)

}

寫程序不要總想一次做好所有事情。

思考一下, 應該寫的出。

脾氣硬 回答

推薦一個這個js插件,應該可以用到小程序里的。
http://code.ciaoca.com/javasc...

萌小萌 回答

經過一個下午的折騰,上周五還是發(fā)現(xiàn)出現(xiàn)該異常情況的原因。概括來說還是中文轉編碼的問題,即utf-8轉gbk出現(xiàn)的小部分行缺少空格或者雙引號的問題。
出現(xiàn)問題的原因:
在進行導出的過程中,接收其他程序傳過來的數(shù)組參數(shù),均為utf-8編碼,我這邊在調用fwrite或者fputcvs寫入文件的過程中并沒有進行 iconv("UTF-8", "GB2312//IGNORE", $header),而是將文件保存在了 export目錄下,然后由vuejs做的后臺調用位于同application下的一個共用類的 export方法,該方法是這樣的:

public function export()
{
    $file = \Request::get('file');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename=export.csv');
    header('Cache-Control: max-age=0');
    $contents = file_get_contents(\Env::get('runtime_path') . '/export/' . $file);
    echo iconv("UTF-8", "GB2312//IGNORE", $contents);
    @unlink(RUNTIME_PATH . '/export/' . $filename);
    exit;
}

問題就出在 echo iconv("UTF-8", "GB2312//IGNORE", $contents); 這句代碼上面,這里看到是對傳入的整個文件進行轉編碼的,這里未進行測試到底多少行的數(shù)據會出現(xiàn)缺少逗號引號的問題。
最終的解決思路是,把共用類中對整個文件的轉編碼放到寫入方法中,逐條轉編碼就解決了該問題。

更改后的代碼:

public static function createCsv($data, $header = [], $filename = '')
{
    // 參數(shù)判斷
    $data = is_object($data) ? $data->toArray() : $data;
    $header = is_array($header) ? $header : [];
    $filename = (1 > strlen(trim($filename))) ? 'csv-' : trim($filename);
    if (empty($data)) {
        return false;
    }

    // 文件名/目錄
    $filename = $filename . date("YmdHis", time()) . rand(1000, 9999) . ".csv";
    $dir = Env::get('runtime_path') . '/export/';
    if (!is_dir($dir) && !mkdir($dir)) {
        return false;
    }

    // 打開文件指針資源
    $handle = fopen($dir . $filename, 'w+');
    if (!$handle) {
        return false;
    }

    // 寫入文件header頭
    if (!empty($header)) {
        foreach ($header as $key => $item) {
            $header[$key] = iconv("UTF-8", "GB2312//IGNORE", $item);
        }
        $res = fputcsv($handle, $header);
        if (!$res) {
            return false;
        }
    }

    // 判斷header是索引數(shù)組還是關聯(lián)數(shù)組
    $is_assoc = array_keys($header) !== range(0, count($header) - 1);

    // 寫入文件內容
    $frequency = 0; // 頻率
    $limit = 100000;
    foreach ($data as $datum) {
        $frequency++;
        if ($limit == $frequency) {
            // 刷新輸出buffer
            ob_flush();
            flush();
            $frequency = 0;
        }
        // 如果是關聯(lián)數(shù)組,則獲取內容中和頭部key相對應的值
        if ($is_assoc) {
            $csv = "";
            foreach(array_keys($header) as $item) {
                $datum[$item] = iconv("UTF-8", "GB2312//IGNORE", $item);
                $val = str_replace('"', '""', $datum[$item]); // 將單個雙引號替換為兩個雙引號
                $csv .= '"' . $val . '",'; // 為每個字符增加雙引號,并添加逗號分割符
            }
            $csv = substr($csv, 0, -1); // 去掉每行最后一個逗號
            $csv .= "\n"; // 添加換行符
            $res = @fwrite($handle, $csv);
        } else {
            $res = fputcsv($handle, $datum);
        }

        if (!$res) {
            return false;
        }
    }

    // 關閉指針資源
    fclose($handle);
    return Url::build('erp/Common/export', 'file=' . $filename);
}


public function export()
{
    $file = \Request::get('file');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename=export.csv');
    header('Cache-Control: max-age=0');
    $contents = file_get_contents(\Env::get('runtime_path') . '/export/' . $file);
    echo $contents;
    exit;
}

調用步驟:

先調用createCsv生成文件,再調用export下載。

———————————————————————分割線——————————————————————

另外一種解決思路:

csv文件直接存儲 UTF-8 編碼:
即不需要進行 iconv 轉編碼,這樣會有個小問題就是MacOS中的Excel無法自動識utf-8編碼,中文會出現(xiàn)亂碼的情況。

原因:

Excel在讀取csv的時候是通過讀取文件頭上的bom來識別編碼的,如果文件頭無bom信息,則默認按照unicode編碼讀取。(這個bom是微軟自己定義的一種文件頭部協(xié)定,顧名思義存儲在文件頭部,存儲內容就是標識文件編碼的信息。)而我們生成csv的平臺不一定遵循微軟的bom協(xié)議,導致如果輸出非unicode編碼的csv文件(例如utf-8),并且沒有生成bom信息的話,Excel自動按照unicode編碼讀取,就會出現(xiàn)亂碼問題了。

作者:李蛟 鏈接:https://www.zhihu.com/questio...
來源:知乎 著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

根據知乎查到的答案,原來是這里未遵循微軟的bom協(xié)議。原因找到了,解決方案就能出了。

解決方法:
fopen 方法下寫入bom頭,這里簡單寫一下步驟

function createCsv($filename, $header, $data) {
    $handle = fopen($filename, 'w+');
    // 添加BOM,標識為UTF-8格式
    fwrite($handle, chr(0xEF).chr(0xBB).chr(0xBF));
    // 寫入頭部
    fputcsv($handle, $header);
    // 逐行寫入內容
    foreach ($data as $datum) {
        fputcsv($handle, $datum);
    }
    // 關閉指針資源
    fclose($handle);
}

另外再補充一下 Bom 簡介

  • 在UCS 編碼中有一個叫做”ZERO WIDTH NO-BREAKSPACE”的字符,它的編碼是FEFF。
  • FFFE在UCS中是不存在的字符,所以不應該出現(xiàn)在實際傳輸中。
  • UCS規(guī)范建議我們在傳輸字節(jié)流前,先傳輸字符”ZERO WIDTH NO-BREAK SPACE”。
  • 這樣如果接收者收到FEFF,就表明這個字節(jié)流是Big-Endian的;
  • 如果收到FFFE,就表明這個字節(jié)流是Little-Endian的。
  • 因此字符”ZERO WIDTH NO-BREAK SPACE”又被稱作BOM。
  • UTF-8不需要BOM來表明字節(jié)順序,但可以用BOM來表明編碼方式。
  • 字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8編碼是EF BB BF。
  • 所以如果接收者收到以EF BB BF開頭的字節(jié)流,就知道這是UTF-8編碼了。
  • Windows就是使用BOM來標記文本文件的編碼方式的。

該內容來自 http://blog.csdn.net/chaozhi_... 這篇博客

尐懶貓 回答
  1. vuex 主要是用于項目組件之間的通信、數(shù)據交互;使用vuex之后,各種狀態(tài)都能在一個地方控制,能進行統(tǒng)一管理,非常方便;
  2. localStorage 可以解決 vuex 無法保存的問題;localStorage 只能存字符串,所以在 localStorage 存起來要序列化(類型轉換),取出來又要,很麻煩;
  3. 一個負責通信,一個負責存儲;其實不影響, token 的話就保存在 localStorage 就好
毀了心 回答

拿到code需要用戶同意的,你想跳過那步是不可以的。

卟乖 回答

你說的這種情況在刷新的時候也存在,比如跳轉到/list下,刷新頁面就無法顯示還報錯。

試一下這種方式:

render(
  <BrowserRouter>
    <Switch>
      <Route exact path="/" component={Index}/>
      <Route exact path="/list" component={List}/>
    </Switch>
  </BrowserRouter>,
  document.getElementById('container')
);
晚風眠 回答

怎么了沒毛病,你是怎么理解的,你這代碼跟vue什么關系

哎呦喂 回答

上面代碼寫錯了
clientSocket.setblocking = False 錯誤

clientSocket.setblocking(False)

遺莣 回答

同問 webstorm可以找到定義 同樣的代碼vscode卻不能

壞脾滊 回答
  this.move = function () {
            this.clears();
            this.draw();
            var first = this.enemys[0];
            var end = this.enemys[this.enemys.length - 1];
            var speedX = 1;
            if (this.enemys.length > 0 && (end.x + 50 + first.speedX > canvas.width
                || first.x + first.speedX < 0)) {
                speedX *= -1;
            }
            for (let i = 0, leg = this.enemys.length; i < leg; i++) {
                var enemy = this.enemys[i];
                enemy.x += enemy.speedX;
                enemy.speedX *= speedX;
            }
            requestAnimationFrame(this.move.bind(this));
        }
疚幼 回答

單頁面應用應該放到nginx或者apache、tomcat等web代理服務器中。

苦妄 回答

做IE的兼容不僅會使開發(fā)效率降低,還有造成頸肩腰椎等部位疼痛或者是脫發(fā),痔瘡等問題。

PS:亂說的。最理想的前端開發(fā)就是不需要顧及css的兼容性,兼容性讓預處理工具去做,前端只要負責邏輯就好

心癌 回答

option中添加 : includeSelectAllOption: true,

離殤 回答

你的需求看上去不是簡單的腳本能夠解決的,更偏向于開發(fā)一個系統(tǒng)了。
這個有不少的開源軟件,zabbix nagios.等等。

如果你自己開發(fā),可能要考慮到數(shù)據采集,數(shù)據處理,界面展示。
實際上做完這些基本可以說是一個全棧工程師了。后臺接口的設計,數(shù)據表設計,前端圖表等等。

如果你的時間充足,能力強,這個過程還是非常的有收獲。

基于監(jiān)控方式,可以參考開源軟件,或者自己根據實際需求出發(fā)。監(jiān)控這個話題太大,我簡單的從總體角度出發(fā)去闡述。