cdn redis緩存,能用上全用上,干嗎非要生成靜態(tài)html
我有個(gè)網(wǎng)站,php寫的,第一次訪問(wèn)渲染一下頁(yè)面,接下來(lái)的訪問(wèn)就全是cdn返回了,沒(méi)有必要生成靜態(tài)html嗎
$urlArr = array(
'https://172.16.3.33/resource/js/jquery.min.js',
'https://172.16.3.33/resource/js/unit.js',
'https://172.16.3.33/resource/js/dialog/jquery.artDialog.source.js',
'https://172.16.3.33/test.js',
'https://172.16.3.13/resource/xigua/hello.php',
);
$urlTree = arrangeUrlTree($urlArr); //拼接數(shù)據(jù)
echo "<pre>";
print_r($urlTree);
/**
*/
function arrangeUrlTree($arr){
if(!$arr){
return array();
}
$returnArr = array();
foreach($arr as $k => $v){
$url = parse_url($v);//分析URL
//print_r($url);
$hostname = $url['scheme'].'://'.$url['host'];
if(!isset($returnArr[$hostname])){
$returnArr[$hostname] = array();
}
$pathList = explode('/',$url['path']);
$pathList = array_filter($pathList);//去空
$pathList = array_merge($pathList);//重新排序下標(biāo)
$pathListCount = count($pathList);//長(zhǎng)度
$tmpArr = &$returnArr[$hostname];//引用賦值,更新最終數(shù)組的值
$treeLevel = 1;//樹的深度 為遍歷展示用
foreach($pathList as $k2 => $v2){
if($k2 == ($pathListCount-1) ) {//最后一層 則說(shuō)明是文件 否則為文件夾路徑
$tmpArr[] = $v2;
//$tmpArr['treeLevel'] = $treeLevel; //等級(jí)
}else{
if(!isset($tmpArr[$v2])){
$tmpArr[$v2] = array();
}
//$tmpArr['treeLevel'] = $treeLevel;
$tmpArr = &$tmpArr[$v2];//重新賦值數(shù)組 用于循環(huán)整理完完整目錄
}
$treeLevel += 1;
}
}
return $returnArr;
}
在CI服務(wù)器上預(yù)裝好nodejs就完事了,我就是這么解決的。Jenkins構(gòu)建依賴非常重,并不適合跑在docker容器中。我以前這么干過(guò),發(fā)現(xiàn)并不是最佳實(shí)踐,就放棄了。
Docker最適合的場(chǎng)景是依賴輕,獨(dú)立運(yùn)行的微服務(wù),像Hadoop,Jenkins這一類依賴本身非常重的應(yīng)用,用Docker運(yùn)行反而很麻煩
……iframe間通信百度一下?
for 循環(huán)內(nèi)再加 for 循環(huán)的時(shí)候,運(yùn)行過(guò)程簡(jiǎn)而言之就是外層for循環(huán)每運(yùn)行一次,內(nèi)層循環(huán)會(huì)全部循環(huán)一次,三層for循環(huán)和四層for循環(huán)都是 這種運(yùn)行過(guò)程,不過(guò)層數(shù)變多了而已,從最內(nèi)層開始看就行
for i in range(1,10): # 每循環(huán)一次,第二個(gè)for循環(huán)都會(huì)被完整的循環(huán)一遍 例如當(dāng)這里是8時(shí)
for j in range(1,i+1): # 上面為8 這里范圍為 1,2,3,4,5,6,7,8(值取不到9)
print('%s*%s=%s'%(i,j,i*j),end = ' ') # 內(nèi)層for循環(huán)打印
print('') # 內(nèi)層for循環(huán)結(jié)束,執(zhí)行換行,下面沒(méi)有代碼了,回到外層的for循環(huán),獲取下一個(gè)值9
less和css要分開配置,不要合在一起配置
我改為view.layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1)去測(cè)試,發(fā)現(xiàn)只有相對(duì)于z軸旋轉(zhuǎn)時(shí)有問(wèn)題,看起來(lái)不像是繞z軸旋轉(zhuǎn)
如果使用動(dòng)畫的方式來(lái)進(jìn)行旋轉(zhuǎn)就沒(méi)有問(wèn)題!!
CABasicAnimation *circleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
view.duration = 0;
view.repeatCount = 1;
view.toValue = @(angle);
view.removedOnCompletion = NO;
view.fillMode = kCAFillModeForwards;
[view.layer addAnimation:circleAnimation forKey:@"rotation"];
原因是使用CATransform3DMakeRotation后修改了坐標(biāo)系,那么接下來(lái)是不能夠在此設(shè)置其所在視圖的frame的。這里我多次設(shè)置了其frame所以導(dǎo)致該問(wèn)題
用定位要注意定位父級(jí)
<view class='imgbox'>
<image class='ico' mode='scaleToFill' src='{{ico}}></image>
<text class="txt">{{text}}</text>
</view>
.imgbox{
position: relative;
width: 600rpx;
height: 400rpx;
}
.ico{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.txt{
position: relative;
}
upload中有個(gè)before-remove --------------刪除文件之前的鉤子,參數(shù)為上傳的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,則停止刪除。文檔寫的。
在before-remove里進(jìn)行彈出確認(rèn)
history
history.pushState
, history.replaceState
修改歷史記錄history.popstate
監(jiān)聽歷史記錄
1.拿到原型跟設(shè)計(jì)圖之后,先分析整體代碼會(huì)用到哪些技術(shù),心里要有一個(gè)大致的方向,
大致的框架要有一個(gè)雛形
2.細(xì)分功能,一個(gè)頁(yè)面 -> 一個(gè)小組件 哪些組件可以以哪種方式共享,哪些代碼一看就是公共代碼
3.一邊做一邊重構(gòu),這個(gè)是大框架上的重構(gòu),盡量不要有太多冗余代碼
4.功能做好了之后,需要繼續(xù)重構(gòu)代碼。找人檢視代碼之前,盡量精煉自己的代碼。
一般檢視之后,不同的人有不同的考量視角,根據(jù)領(lǐng)導(dǎo)提出的意見再繼續(xù)重構(gòu),最后提交代碼
5.代碼其實(shí)是一直在重構(gòu)的,只要保證不出問(wèn)題,自己的代碼就要一直思考擴(kuò)展性以及性能等方面是否還有
提升空間
6.如果是多人合作,開會(huì)的時(shí)候多溝通,相同的功能模塊一個(gè)人開發(fā)就好了,跳過(guò)某一步繼續(xù)開發(fā)。
等公共模塊開發(fā)完了再聯(lián)調(diào)就行。
$sql_insert = "insert into tabs(name,singer) values ('$name','$singer')";去掉單引號(hào)
兩種模式不要混用
改為
$num = $conn->num_rows;
// 假設(shè) hello.a 在當(dāng)前文件夾,其他程序叫 main.go
go tool compile -I . main.go
go tool link -o main -L . main.o
@陽(yáng)光的味道 和 @好好大東 方法有用,解決了我的問(wèn)題!感謝!特意登陸點(diǎn)贊!
1.你這個(gè)模擬只是模擬UA,并不是真正的模擬固件
2.要真正的模擬固件可以裝xcode,安裝不同的模擬器,對(duì)于Android也可以安裝模擬器,最好還是有真機(jī)測(cè)試
arr1 = arr.filter((elem,index)=> elem.sort != 4)
arr2 = arr.filter((elem,index)=> elem.sort == 4)
瀑布流的源碼很多,為什么一定要vue的呢?原理都是一樣的。而且你應(yīng)該先搜索,自己動(dòng)手找尋答案,能google的就別來(lái)問(wèn)了
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(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庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。