鍍金池/ 問(wèn)答
尐潴豬 回答

媒體查詢--移動(dòng)設(shè)備這是我見(jiàn)過(guò)比較齊全的媒體查詢方法;

建議

媒體查詢一般用于兼容移動(dòng)設(shè)備,如果你希望通過(guò)媒體查詢來(lái)兼容的,我不建議你這么做。目前市場(chǎng)上的移動(dòng)設(shè)備規(guī)格太混亂,媒體查詢不能完全覆蓋,同時(shí)使用過(guò)程中工作量巨大,不利于生產(chǎn);

推薦閱讀

當(dāng)然,如果你使用vue的話,我這里有一套基于vue的多頁(yè)面的VW適配, 是根據(jù)大漠的vw適配折騰出來(lái)的

壞脾滊 回答

提個(gè)思路:

final String methodName = new Exception().getStackTrace()[0].getMethodName();

然后反射拿到這個(gè)方法對(duì)應(yīng)的 Method 實(shí)例。

礙你眼 回答

問(wèn)題找到了,就是在mac下面編譯成linux GOOS=linux GOARCH=amd64

挽歌 回答
沒(méi)有絕對(duì)的安全

首先md5不能算是加密算法,因?yàn)樗菃蜗虻摹⒉豢赡娴?,你沒(méi)法對(duì)經(jīng)過(guò)md5運(yùn)算過(guò)的密碼進(jìn)行“解密”而得到原始的明文密碼,但確實(shí)在md5與密碼發(fā)生關(guān)系時(shí)我們喜歡叫它“加密”。所以就算攻擊者知道你用了md5哈希算法,截獲了你“加密”后的密碼,即md5(password)(不妨設(shè)md5哈希函數(shù)為md5(),用戶明文密碼為password),也無(wú)法通過(guò)倒推得知用戶的明文密碼,只能暴力窮舉猜測(cè)用戶的密碼。

其次,就算攻擊者不知道password,只知道md5(password),也足夠了,他只要向服務(wù)器發(fā)送md5(password)便能通過(guò)認(rèn)證。而且驗(yàn)證的過(guò)程仍為明文對(duì)比,只是從對(duì)比明文密碼變成對(duì)比明文密碼的哈希值。為了解決這個(gè)問(wèn)題,有人提出給密碼“加鹽”:服務(wù)器既不存儲(chǔ)明文密碼password,也不存儲(chǔ)md5(password),而是存儲(chǔ)md5(password)salt,這個(gè)salt即“鹽”。用戶每次登陸時(shí),服務(wù)器先生成一個(gè)動(dòng)態(tài)的、短時(shí)間內(nèi)不會(huì)重復(fù)的salt發(fā)送給用戶,然后用戶將md5(md5(password) + salt)發(fā)回給服務(wù)器,服務(wù)器經(jīng)過(guò)同樣的運(yùn)算后對(duì)比結(jié)果,一致則通過(guò)驗(yàn)證。這樣一來(lái),攻擊者就算截獲了saltmd5(md5(password) + salt),也無(wú)法倒推出md5(password),同時(shí)salt一經(jīng)使用,就會(huì)失效,攻擊者就無(wú)法通過(guò)重新發(fā)送md5(md5(password) + salt)來(lái)偽裝成用戶。

但上述做法有個(gè)問(wèn)題(至少一個(gè)問(wèn)題):設(shè)置密碼時(shí),用戶必須告知服務(wù)器md5(password),同時(shí)服務(wù)器上會(huì)明文存儲(chǔ)md5(password),如果設(shè)置密碼時(shí)md5(password)被截獲,或服務(wù)器的數(shù)據(jù)庫(kù)被入侵,攻擊者就會(huì)得知md5(password),從而就可以偽裝成用戶通過(guò)密碼驗(yàn)證了。而且,如果這個(gè)用戶在其它網(wǎng)站也使用了一樣的密碼(這是很常見(jiàn)的),其它網(wǎng)站又剛好使用了一樣的密碼驗(yàn)證方式,攻擊者就能同時(shí)獲得該用戶在多個(gè)網(wǎng)站的授權(quán)(撞庫(kù))。這個(gè)問(wèn)題的根本原因是設(shè)計(jì)者沒(méi)有擺脫“明文密碼”,用md5(password)來(lái)代替明文密碼與直接使用明文密碼沒(méi)有太大區(qū)別,因此有人提出,我們不要用md5(password),改用md5(password + salt)吧。這里的salt不是前面的salt,前面的是“動(dòng)態(tài)鹽”,現(xiàn)在所說(shuō)的是“靜態(tài)鹽”,為了區(qū)分,用dsalt代表動(dòng)態(tài)鹽,用ssalt代表靜態(tài)鹽。那么登陸方式就變成:服務(wù)器存儲(chǔ)md5(password + ssalt)和與之配套的靜態(tài)鹽ssalt(靜態(tài)鹽在設(shè)置密碼時(shí)配套生成),登陸時(shí),服務(wù)器動(dòng)態(tài)生成隨機(jī)的動(dòng)態(tài)鹽dsalt,將ssaltdsalt一同發(fā)給用戶,用戶將md5(md5(password + ssalt) + dsalt)發(fā)回給服務(wù)器,服務(wù)器進(jìn)行同樣的運(yùn)算,結(jié)果一致則驗(yàn)證通過(guò)。這樣一來(lái),就算攻擊者知道了md5(password + ssalt),也只是攻破了這個(gè)用戶在一個(gè)網(wǎng)站上的賬戶,而不能攻破該用戶使用的其它網(wǎng)站的賬戶——因?yàn)楣粽卟荒芡ㄟ^(guò)md5(password + ssalt)倒推出md5(password),且對(duì)于其它網(wǎng)站,靜態(tài)鹽ssalt也是不同的,通過(guò)md5(password + ssalt1)無(wú)法推出md5(password + ssalt2)

如果你不想讓md5(password + ssalt)被截獲,你可以使用非對(duì)稱加密(詳情自行搜索),但非對(duì)稱加密對(duì)中間人攻擊(詳情自行搜索)無(wú)能為力,為了使非對(duì)稱加密能夠抵抗中間人攻擊,人們又搞出了基于信任的一套機(jī)制(詳情自行搜索),但信任又是可以背叛的……所以說(shuō)沒(méi)有絕對(duì)的安全。

感興趣可以自學(xué)密碼學(xué)。

焚音 回答

因?yàn)槟愕?code>=右邊多了一個(gè)空格

毀憶 回答

https://segmentfault.com/q/10...

發(fā)個(gè)截圖方便理解

clipboard.png

clipboard.png

clipboard.png

打包操作自己百度吧

clipboard.png

有你在 回答
由于 JavaScript 的限制,Vue 不能檢測(cè)以下變動(dòng)的數(shù)組:
當(dāng)你利用索引直接設(shè)置一個(gè)項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue
當(dāng)你修改數(shù)組的長(zhǎng)度時(shí),例如:vm.items.length = newLength

利用這些 函數(shù)進(jìn)行操作
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
或者對(duì)list 重新賦值 即可 list = newList
或者 list.splice(0, list.length -1) 然后 重新 push 一遍

再看看 vue 官網(wǎng) 列表渲染吧

心上人 回答

transition最好實(shí)現(xiàn) 如果要用jquery方法 可以使用 jquery的animate() 方法,詳細(xì)指定你要變化的屬性,

墨染殤 回答

last_node打印出來(lái),你會(huì)發(fā)現(xiàn)并不是<span>標(biāo)簽,而是一個(gè)TextNode。
即標(biāo)簽<input><span>之間會(huì)有另一個(gè)元素,類型為TextNode,在操作的時(shí)候一定要注意。

再舉兩例吧。

這時(shí)獲取到的是 '111?      ' 。
<span>姓名:</span>111
<input type="text" name="user_name" placeholder="此處填寫(xiě)姓名"/>
這時(shí)獲取到的就是`<span>`標(biāo)簽。
<span>姓名:</span><input type="text" name="user_name" placeholder="此處填寫(xiě)姓名"/>
孤慣 回答

你的vue中js部分沒(méi)有添加

<script>
export default {

}
</script>
尛曖昧 回答

if if else這種結(jié)構(gòu) 和 if elseif else邏輯上有著本質(zhì)區(qū)別啊。當(dāng)?shù)谝粋€(gè)if滿足的情況下,第一種寫(xiě)法可能會(huì)執(zhí)行到else直接return 第二種則進(jìn)入第二次循環(huán),繼續(xù)走邏輯。

在catch代碼塊使用下面這行代碼強(qiáng)制回滾即可

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()
挽青絲 回答

看你這個(gè)loader是想用 webpack 配 react 吧。你的 loaders 下面 缺了一個(gè) options 。
給你一個(gè)參考(rules 也可以換成 loaders):

const path =require('path');   
module.exports = {  
  entry: path.resolve(__dirname, 'index.js'),  
  output: {  
    path: path.resolve(__dirname, ''),  
    filename: "bundle.js"  
  },  
  mode: 'development',
  module: {  
    rules: [  
      {  
        test:  /\.js$/,   
        exclude: /node_modules/,  
        loader: "babel-loader",  
        options: {  
          presets: ["es2015","react"]   
        }  
      }  
    ]  
  }  
}; 

具體的配置你也可以參考我之前寫(xiě)的這篇文章:https://segmentfault.com/a/11...

忘了我 回答
<style>
  .flex {
    display: flex;
    flex-direction: column;
    height: 100vh
  }
  .flex-item {
    flex: 1;
    overflow: auto;
  }
</style>
<div class="flex">
  <div>top</div>
  <div class="flex-item"></div>
  <div>bottom</div>
</div>
葬愛(ài) 回答

這里有非常好的例子展示spring掃描的范圍設(shè)定
符合以下條件的會(huì)被掃描并創(chuàng)建bean

  • 類有@Component注解
  • 且包名包含在@ComponentScan注解范圍內(nèi)
  • 或包含在@ComponentScan.Filter范圍內(nèi)

如果子類符合條件,但父類沒(méi)有包含在掃描范圍內(nèi), 子類會(huì)創(chuàng)建,但父類不會(huì)創(chuàng)建, 因?yàn)椴环?code>instanceof條件,即不能說(shuō)父類子類
如果父類被創(chuàng)建, 子類有@Component注解,但不在指定Filter范圍內(nèi),也會(huì)創(chuàng)建,因?yàn)榉?code>instanceof條件,因?yàn)樽宇?strong>一定是父類

@Component注解沒(méi)有繼承關(guān)系(@Inherited), 所以想被創(chuàng)建必須首先要有這個(gè)注解才行.
或創(chuàng)建你自己的可繼承的注解過(guò)的接口.

如:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component 
@Inherited
public @interface BusinessService {
}

SCHEDULER_FLUSH_ON_START = True
在設(shè)置里面可以添加這一句就可以,自動(dòng)清理redis里面的key

瘋子范 回答

這個(gè)不用解決,不影響你用的