鍍金池/ 問答/ HTML問答
// 獲取所有audios
var audios = document.getElementsByTagName("audio");
// 暫停函數(shù)
function pauseAll() {
    var self = this;
    [].forEach.call(audios, function (i) {
        // 將audios中其他的audio全部暫停
        i !== self && i.pause();
    })
}
// 給play事件綁定暫停函數(shù)
[].forEach.call(audios, function (i) {
    i.addEventListener("play", pauseAll.bind(i));
})
遺莣 回答

此類業(yè)務(wù),一般要求前后端都要進(jìn)行計算的!
理由:

前端計算價格用于快速顯示,提高用戶體驗,并減少服務(wù)端壓力。

比如有些需要動態(tài)計算價格的業(yè)務(wù),此類業(yè)務(wù)前端一般是onchange事件,根據(jù)輸入不同,價格不同。如果前端依賴后端計算出來的價格,需要頻繁的請求接口,那服務(wù)端的壓力就會變得很大,同樣的頁面上價格顯示會有短暫延遲!不過您也可以選擇將onchange事件改為onblur失去焦點事件,這樣確實可以變向的減輕服務(wù)端壓力,但這樣體驗又不好!因此前端很有必要計算價格!

后端計算價格用于安全把控

如果僅僅前端計算價格,完完全全可以劫持?jǐn)?shù)據(jù)請求更改價格,到時候就有可能出現(xiàn)1分錢買100塊錢的物品!

壞脾滊 回答

用GET方法加載http://localhost/token.php頁面, 參數(shù)grant_type=client_credentials, -u后面的是用戶名和密碼.

@Feng_Yu 是對的, 加-d參數(shù)后,curl默認(rèn)按POST方法發(fā)送數(shù)據(jù)

孤巷 回答

謝邀!這里面或許有您想要的答案!

參考鏈接:深入理解移動端像素知識與Viewport知識

看完后,如果仍有問題,歡迎一起討論!

柒喵 回答

var crypto = require('crypto');

//加密
export function cipher (buf) {
    var encrypted = "";
    var cip = crypto.createCipher('rc4', 'pkdpkq'); //第一個為加密方式 第二個為密匙
    encrypted += cip.update(buf, 'hex', 'hex');
    encrypted += cip.final('hex');
    return encrypted
};

//解密
export function decipher(encrypted) {
    var decrypted = "";
    var decipher = crypto.createDecipher('rc4', 'pkdpkq');  //第一個為加密方式 第二個為密匙
    decrypted += decipher.update(encrypted, 'hex', 'hex');
    decrypted += decipher.final('hex');
    return decrypted
};
遺莣 回答

公眾號 和 小程序都有支付功能.
你把產(chǎn)品錘一頓,問題就解決了

初念 回答

http://element-cn.eleme.io/#/...

中文官方文檔都不會看的,建議你轉(zhuǎn)行吧,還要把代碼貼出來才會,要你何用???給鏈接了,還特么踩,呵呵!

薄荷糖 回答
<?php
$arr = [
    ['name'=>'abc',"value"=>12],
    ['name'=>'abc',"value"=>15],
    ['name'=>'abc123',"value"=>555],
];
$re = array_reduce($arr,function($p,$c){
    foreach($p as &$item){
        if($item["name"] == $c["name"]){
            echo $c["value"];
            echo $item["value"];
            $item["value"]=$item["value"]+$c["value"];
            return $p;
        }
    }
    array_push($p,$c);
    return $p;
},[]);

App.vue 中

export default {
    components: { Test }
}
蟲児飛 回答

可以利用百度地圖的圖標(biāo)默認(rèn)不清除來實現(xiàn)

玩控 回答

你觀察一下名字 sendRedirectsetStatus. send是發(fā)送, sendRedirect會直接將響應(yīng)發(fā)送給用戶, 所以你后續(xù)在設(shè)置響應(yīng)的狀態(tài)碼已經(jīng)沒用了, 響應(yīng)已經(jīng)發(fā)回給客戶端了.

這兩種寫法是等價的,createStore的源碼

export default function createStore(reducer, preloadedState, enhancer) {
  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
    enhancer = preloadedState
    preloadedState = undefined
  }

  if (typeof enhancer !== 'undefined') {
    if (typeof enhancer !== 'function') {
      throw new Error('Expected the enhancer to be a function.')
    }

    return enhancer(createStore)(reducer, preloadedState)
  }
  ...
}

最關(guān)鍵的就是下面這一行

enhancer(createStore)(reducer, preloadedState)
哚蕾咪 回答

兩種方法
1.定義路由的時候按照path: 'search/products/:params1/:params2'這種方式來寫
2.跳轉(zhuǎn)的時候path: 'search/products?param1=xxxx'這種方式來寫

哎呦喂 回答

你在vuex 中的 state 是如何定義的是否有初始值
如果你的state = {searchPoint: {}, .....}
設(shè)置count時使用state.searchPoint.count = *
vue是監(jiān)聽不到count的變化的
你需要初始化時設(shè)置state = {searchPoint: {count: ''}, .....}
或者給count赴值時改變searchPoint的指向,
如state.searchPoint = {count: **, ....}
或者state.searchPoint=Object.assign({}, state.searchPoint, {count: *})

離觴 回答

1.首先,加載數(shù)據(jù)可以在didmounted生命周期鉤子函數(shù)里處理
2.并不是卸載了再次掛載的時候如果有數(shù)據(jù)了就不需要重新從后端api請求數(shù)據(jù),再次請求是必須的,因為在你組件卸載的過程中,或者是在你上次加載之后數(shù)據(jù)可能已經(jīng)發(fā)生了變化,所以需要組件每次掛載都重新加載最新數(shù)據(jù)
3.即使你做了一層判斷,也沒有違背ui=f(data)的原理,你可以理解為這里的data是映射到ui所需要的data,而這些data可能直接來源于state,也可能是經(jīng)過了一層處理

苦妄 回答

libraryTarget: 'commonjs'

把這句刪掉就行了
這句的作用是把打包的文件以commonjs的規(guī)范導(dǎo)出,如果在瀏覽器運行不需要寫這個