在JDK 6 Update 24之后,HandlePromotionFailure參數(shù)不會(huì)再影響到虛擬機(jī)的空間分配擔(dān)保策略,觀察OpenJDK中的源碼變化(見代碼清單),雖然源碼中還定義了HandlePromotionFailure參數(shù),但是在代碼中已經(jīng)不會(huì)再使用它。JDK 6 Update 24之后的規(guī)則變?yōu)橹灰夏甏倪B續(xù)空間大于新生代對(duì)象總大小或者歷次晉升的平均大小就會(huì)進(jìn)行Minor GC,否則將進(jìn)行Full GC。
代碼清單 HotSpot中空間分配檢查的代碼片段
bool TenuredGeneration::promotion_attempt_is_safe(size_t
max_promotion_in_bytes) const {
// 老年代最大可用的連續(xù)空間
size_t available = max_contiguous_available();
// 每次晉升到老年代的平均大小
size_t av_promo = (size_t)gc_stats()->avg_promoted()->padded_average();
// 老年代可用空間是否大于平均晉升大小,或者老年代可用空間是否大于當(dāng)此GC時(shí)新生代所有對(duì)象容量
bool res = (available >= av_promo) || (available >=
max_promotion_in_bytes);
return res;
}
源自:
https://book.2cto.com/201306/...
EDITED:
Jdk8的最新在線源碼庫在這里
http://hg.openjdk.java.net/jd...
比較一下Jdk6早期的源代碼
http://hg.openjdk.java.net/jd...
bool TenuredGeneration::promotion_attempt_is_safe(
size_t max_promotion_in_bytes,
bool younger_handles_promotion_failure) const {
bool result = max_contiguous_available() >= max_promotion_in_bytes;
if (younger_handles_promotion_failure && !result) {
result = max_contiguous_available() >=
(size_t) gc_stats()->avg_promoted()->padded_average();
if (PrintGC && Verbose && result) {
gclog_or_tty->print_cr("TenuredGeneration::promotion_attempt_is_safe"
" contiguous_available: " SIZE_FORMAT
" avg_promoted: " SIZE_FORMAT,
max_contiguous_available(),
gc_stats()->avg_promoted()->padded_average());
}
} else {
if (PrintGC && Verbose) {
gclog_or_tty->print_cr("TenuredGeneration::promotion_attempt_is_safe"
" contiguous_available: " SIZE_FORMAT
" promotion_in_bytes: " SIZE_FORMAT,
max_contiguous_available(), max_promotion_in_bytes);
}
}
return result;
}
(這個(gè)與實(shí)現(xiàn)密切相關(guān), 版本之間變化很多, 建議有這時(shí)間學(xué)點(diǎn)別的)
你大概新建項(xiàng)目時(shí)候用的是 webpack-dev-server吧。如果用pm2 就不用這個(gè)了
vue 1.X webpack 1.X
如果你是最近在學(xué)的。建議不要太糾結(jié)這個(gè)環(huán)境的問題,直接用vue-cli來搭建開發(fā)環(huán)境。
另外你這個(gè)
wangEditor 從v3版本開始不支持 textarea ,但是可以通過onchange來實(shí)現(xiàn) textarea 中提交富文本內(nèi)容。
<div id="div1">
<p>歡迎使用 <b>wangEditor</b> 富文本編輯器</p>
</div>
<textarea id="text1" style="width:100%; height:200px;"></textarea>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="../wangEditor.js"></script>
<script type="text/javascript">
var E = window.wangEditor
var editor = new E('#div1')
var $text1 = $('#text1')
editor.customConfig.onchange = function (html) {
// 監(jiān)控變化,同步更新到 textarea
$text1.val(html)
}
editor.create()
// 初始化 textarea 的值
$text1.val(editor.txt.html())
</script>除了上面大神給的正則以為,還可以在onchange事件里,判斷當(dāng)前輸入的長度,有多少個(gè)長度,就再設(shè)一個(gè)參數(shù),那個(gè)參數(shù)就有多少個(gè)*。代碼如下:
// 密碼輸入框事件
onpwdChange(e) {
let password = e.target.value;
let pad = '';
for (let i=0;i<password.length;i++){
pad=pad+"*"
}
this.setState({
password: password,
pad:pad,
})
}tempButton.setTextColor(R.drawable.channel_text_color_selector)不能這樣用
setTextColor他的參數(shù)是int color不是drawableResId
你可以使用settextColor方法設(shè)置ColorStateList 來實(shí)現(xiàn)你的需求,或者直接設(shè)置一個(gè)radiobutton的xml布局將其添加過來也行
首先非常簡單的是 如果你是用的是axios 那么可以這么做
使用axios的攔截處理
import axios from 'axios'
import qs from 'qs'
// 這里是你想要loading的動(dòng)畫 這里我先用antd-mobile演示
import { Toast } from 'antd-mobile';
// 簡單的設(shè)置超時(shí)時(shí)間
axios.defaults.timeout = 10000
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
// 請(qǐng)求攔截
axios.interceptors.request.use(config => {
// 進(jìn)行l(wèi)oading動(dòng)畫
Toast.loading('請(qǐng)求數(shù)據(jù)中...', 0)
if (config.method === "post" || config.method === "put" || config.method === "delete") {
// 序列化
config.data = qs.stringify(config.data);
}
return config;
},
// 請(qǐng)求發(fā)生錯(cuò)誤
error => {
// 在這里處理你想要做的錯(cuò)誤處理 比如 出現(xiàn)重新加載等等...
// 一旦捕獲錯(cuò)誤 就給redux設(shè)置一個(gè)全局狀態(tài) 當(dāng)然狀態(tài)根據(jù)你的業(yè)務(wù)需求自己定義 比如 1代表 xx 2 代表xx 根據(jù)redux不同狀態(tài)去做不同事情
// ...somecode
// 拋出錯(cuò)誤信息
return Promise.reject(error.data.error.message);
});
// 響應(yīng)攔截
axios.interceptors.response.use(config => {
// 取消掉loading
Toast.hide()
return config
})
// 請(qǐng)求封裝
export default function fetch(url, params = {}, method = 'get') {
// 處理不同請(qǐng)求方式的傳參格式
if (method === 'get') {
params = {params}
}
return new Promise((resolve, reject) => {
axios[method](url, params).then(res => {
// 不為 0 拋出提示 => 這里我后端定義的是 0 即時(shí)正常數(shù)據(jù)
// 請(qǐng)根據(jù)你的實(shí)際應(yīng)用拋出的錯(cuò)誤進(jìn)行調(diào)整 此時(shí)你也應(yīng)該用redux 設(shè)置全局狀態(tài) 進(jìn)行你想要的業(yè)務(wù)需求 比如出現(xiàn)按鈕
res.data.code && Toast.info(res.data.msg, 1, null, true)
resolve(res.data)
}).catch(error => {
// 接口異常 進(jìn)行處理
// ...somecode
reject(error)
})
})
}
如上 捕獲超時(shí)時(shí)間 捕獲接口錯(cuò)誤信息 以及捕獲請(qǐng)求發(fā)送錯(cuò)誤 然后設(shè)置redux 即可
td_list = response.css("td")
for td in td_list:
td.css("::text").extract()沒有。
不過建議你先找個(gè)容易點(diǎn)的嘗試一下。
需要刷新html頁面才能生成新的token。
你可以在后端寫一個(gè)生成token的function,在提交表單的時(shí)候先使用ajax訪問該function獲取新的token,再將這個(gè)token提交上去
//php
function createToken(){
return $request->token();
}
//jq
function getToken(){
var token = null;
$.ajax({
url:'createToken',
type:"get",
async: false,
dataType:"json",
success function(data){
token = data;
}
});
return token;
}
function editOne(url,id){
// 第一生成token
var token=getToken();
var xhr=$.ajax({
url:url,
type:"POST",
dataType:"text",
data:{'id':1,'__token__':token},
})
.done(function(data) {
// token=xhr.getResponseHeader("__token__");
console.log(data);
console.log(xhr.getResponseHeader("__token__"));
})
.fail(function() {
alert(data.msg);
})
.always(function() {
console.log("complete");
});
}var ListTables = document.getElementsByClassName("listTable")[0];
var opinions = [];
var calls = [];
for(var i = 0, len = ListTables.rows.length; i < len; i++){
if(i == 0){
var name = ListTables.rows[i].cells[0].innerHTML.replace(" - 意見建議", "");
} else{
var opinion = ListTables.rows[i].cells[0].firstChild.innerHTML;
opinions.push(opinion);
var call = ListTables.rows[i].cells[0].lastChild.innerHTML;
calls.push(call);
}
}
var str = "";
for(var j = 0, len = opinions.length; j < len; j++){
str += name + " " + calls[j] + " " + opinions[j] + "\n";
}
copy(str);
//自動(dòng)跳轉(zhuǎn)
var next_page = location.href;
var next_page = next_page.split("=");
next_page[1] = parseInt(next_page[1]);
var num_add = next_page[1]+1;
var next_page_url = next_page[0] + "=" + num_add;
location.href = next_page_url;1.確實(shí)是的,操作dom時(shí)vue的性能有點(diǎn)浪費(fèi),
2.除了樓上說的這種原生實(shí)現(xiàn)方法,還可以借用element插件的indeterminate 狀態(tài)來實(shí)現(xiàn)復(fù)選效果,http://element.eleme.io/#/zh-...
為什么不直接改webpack的配置? 應(yīng)該是publicPath吧
<script>
const a = [{id:1,age:10},{id:2,age:20},{id:3,age:30}];
const b = [{id:3,sex:'男'},{id:1,sex:'男'},{id:2,sex:'女'}];
let c = [];
for(let u of a) {
const temp = b.filter(i => i.id === u.id)[0];
c.push({...u, ...temp});
}
console.log(c);
</script>你需要 vuex
al()函數(shù)的this指向的是函數(shù)本身
let _this = this
function al() {
console.log(_this.$router)
}剛剛解決這個(gè)方案,新鮮出爐的。
在項(xiàng)目根路徑下創(chuàng)建flow/GeneralStub.js.flow,內(nèi)容
export default {};
.flowconfig中ignore段下,忽略所有的react-native依賴。
./Libraries/react-native/.
.flowconfig中opiton段下,
module.name_mapper='(react-native)' -> '<PROJECT_ROOT>/flow/GeneralStub.js.flow'
ps:flow對(duì)于第三依賴的策略是,不要修改第三方庫,不要在第三方依賴文件上添加@flow,@noflow
常用么?dict無序更常用吧。
用的時(shí)候再sorted排序也不遲啊。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。