這是javascript設(shè)計問題. 其實也很好理解吧, 如果可寫可以從false改為true的話, 那這個屬性還有啥意義.. 設(shè)計之初為的就是限制.. (你不知道的js-上 了解一下.
單步調(diào)試發(fā)現(xiàn)遞歸的效率太慢了。fib(100)算了幾百萬次。
遞歸算法(以計算fib(10)為例)
+ fib(10)=fib(9)+fib(8)
+ fib(9)=fib(8)+fib(7)
// ...
可以發(fā)現(xiàn)在fib(10)和fib(9)的時候fib(8)被重復計算了。
用了一種比較笨的方法,效率還可以。
package main
import "fmt"
func fib(n uint64) uint64 {
callTime := 0
if n == 0 {
return 0
}
if n == 1 {
return 1
}
var (
first uint64 = 0
second uint64 = 1
result uint64 = 0
cursor uint64 = 1
)
for cursor < n {
callTime++
fmt.Println("fib", callTime)
result = first + second
first = second
second = result
cursor++
}
return result
}
var (
callTime = 0
)
func fib2(n int) int {
callTime++
fmt.Println("fib2", callTime)
if n <= 0 {
return 0
}
if n == 1 {
return 1
}
return fib2(n-1) + fib2(n-2)
}
func main() {
fib(10)
fib2(10)
}
終端輸出
fib 1
fib 2
fib 3
fib 4
fib 5
fib 6
fib 7
fib 8
fib 9
fib2 1
fib2 2
fib2 3
fib2 4
fib2 5
fib2 6
fib2 7
fib2 8
fib2 9
fib2 10
fib2 11
fib2 12
fib2 13
fib2 14
fib2 15
fib2 16
fib2 17
fib2 18
fib2 19
fib2 20
fib2 21
fib2 22
fib2 23
fib2 24
fib2 25
fib2 26
fib2 27
fib2 28
fib2 29
fib2 30
fib2 31
fib2 32
fib2 33
fib2 34
fib2 35
fib2 36
fib2 37
fib2 38
fib2 39
fib2 40
fib2 41
fib2 42
fib2 43
fib2 44
fib2 45
fib2 46
fib2 47
fib2 48
fib2 49
fib2 50
fib2 51
fib2 52
fib2 53
fib2 54
fib2 55
fib2 56
fib2 57
fib2 58
fib2 59
fib2 60
fib2 61
fib2 62
fib2 63
fib2 64
fib2 65
fib2 66
fib2 67
fib2 68
fib2 69
fib2 70
fib2 71
fib2 72
fib2 73
fib2 74
fib2 75
fib2 76
fib2 77
fib2 78
fib2 79
fib2 80
fib2 81
fib2 82
fib2 83
fib2 84
fib2 85
fib2 86
fib2 87
fib2 88
fib2 89
fib2 90
fib2 91
fib2 92
fib2 93
fib2 94
fib2 95
fib2 96
fib2 97
fib2 98
fib2 99
fib2 100
fib2 101
fib2 102
fib2 103
fib2 104
fib2 105
fib2 106
fib2 107
fib2 108
fib2 109
fib2 110
fib2 111
fib2 112
fib2 113
fib2 114
fib2 115
fib2 116
fib2 117
fib2 118
fib2 119
fib2 120
fib2 121
fib2 122
fib2 123
fib2 124
fib2 125
fib2 126
fib2 127
fib2 128
fib2 129
fib2 130
fib2 131
fib2 132
fib2 133
fib2 134
fib2 135
fib2 136
fib2 137
fib2 138
fib2 139
fib2 140
fib2 141
fib2 142
fib2 143
fib2 144
fib2 145
fib2 146
fib2 147
fib2 148
fib2 149
fib2 150
fib2 151
fib2 152
fib2 153
fib2 154
fib2 155
fib2 156
fib2 157
fib2 158
fib2 159
fib2 160
fib2 161
fib2 162
fib2 163
fib2 164
fib2 165
fib2 166
fib2 167
fib2 168
fib2 169
fib2 170
fib2 171
fib2 172
fib2 173
fib2 174
fib2 175
fib2 176
fib2 177
可以看到算法1優(yōu)勢還是蠻大的
一個偏方:
如果用 transition 改變 className 的方式來的話,就可以 $(node).style.top 來寫了。。。
遇到過同類的問題被坑,主要還是alias和root的用法區(qū)別,root 指定的是location的父級目錄,alias會重新指定一個新的路徑,注意:路徑要以"/"結(jié)尾
參考https://segmentfault.com/a/11...
你這是從github拷貝下來的別人的代碼?github上面這種中文的管理系統(tǒng)都是一個模板,什么人做的可想而知,最好不要照著這種學,里面錯漏百出代碼凌亂,學了怕你走彎路
回歸正題,他報的錯是多個重復的key被檢測到,也就是說cheyuanjianche這個組件里面的v-for循環(huán)里面的key值重復了。
樓上幾個人都在胡說八道呢,<App> at src/App.vue這個一點關(guān)系都沒有。。這個句話是是說這個文件里面的寫錯了,這是項目路徑,又不是路由,這個路徑完全沒問題的。
npm默認安裝的是最新的穩(wěn)定版本的,組件名稱完全沒影響。。。
還有控制臺報的錯是key值重復了,怎么一個揪著組件名稱不放,一個盯著文件項目路徑胡說,一個發(fā)幾個連接充數(shù)。。。就不能看看報的是什么錯嗎,一個個瞎猜
控制臺打印的東西還能被js解析出錯,人家官網(wǎng)說了不限制組件名稱還能組件名稱出錯,惡意刷分的不要太過分
A文件的寫法有問題。可以試試這樣:
const route = [{...}, {...}];
export {
route
}
再從B中引入A,應(yīng)該就沒問題了。
對于參數(shù)綁定為何可以避免SQL注入,建議題主可以了解一下,值得注意的是prepare語句只能解析一條SQL,下面摘要說明一下prepare的作用:
首先從mysql服務(wù)器執(zhí)行sql的過程開始講起,SQL執(zhí)行過程包括以下階段 詞法分析->語法分析->語義分析->執(zhí)行計劃優(yōu)化->執(zhí)行。詞法分析->語法分析這兩個階段我們稱之為硬解析。詞法分析識別sql中每個詞,語法分析解析SQL語句是否符合sql語法,并得到一棵語法樹(Lex)。對于只是參數(shù)不同,其他均相同的sql,它們執(zhí)行時間不同但硬解析的時間是相同的。而同一SQL隨著查詢數(shù)據(jù)的變化,多次查詢執(zhí)行時間可能不同,但硬解析的時間是不變的。對于sql執(zhí)行時間較短,sql硬解析的時間占總執(zhí)行時間的比率越高。而對于淘寶應(yīng)用的絕大多數(shù)事務(wù)型SQL,查詢都會走索引,執(zhí)行時間都比較短。因此淘寶應(yīng)用db sql硬解析占的比重較大。
Prepare的出現(xiàn)就是為了優(yōu)化硬解析的問題。Prepare在服務(wù)器端的執(zhí)行過程如下
1) Prepare 接收客戶端帶”?”的sql, 硬解析得到語法樹(stmt->Lex), 緩存在線程所在的preparestatement cache中。此cache是一個HASH MAP. Key為stmt->id. 然后返回客戶端stmt->id等信息。
2) Execute 接收客戶端stmt->id和參數(shù)等信息。注意這里客戶端不需要再發(fā)sql過來。服務(wù)器根據(jù)stmt->id在preparestatement cache中查找得到硬解析后的stmt, 并設(shè)置參數(shù),就可以繼續(xù)后面的優(yōu)化和執(zhí)行了。
Prepare在execute階段可以節(jié)省硬解析的時間。如果sql只執(zhí)行一次,且以prepare的方式執(zhí)行,那么sql執(zhí)行需兩次與服務(wù)器交互(Prepare和execute), 而以普通(非prepare)方式,只需要一次交互。這樣使用prepare帶來額外的網(wǎng)絡(luò)開銷,可能得不償失。我們再來看同一sql執(zhí)行多次的情況,比如以prepare方式執(zhí)行10次,那么只需要一次硬解析。這時候 額外的網(wǎng)絡(luò)開銷就顯得微乎其微了。因此prepare適用于頻繁執(zhí)行的SQL。
Prepare的另一個作用是防止sql注入,不過這個是在客戶端jdbc通過轉(zhuǎn)義實現(xiàn)的,跟服務(wù)器沒有關(guān)系。
建議題主看下MySQL官方文檔(https://dev.mysql.com/doc/ref...)。什么?看不懂英文?試試百度翻譯吧:https://fanyi.baidu.com
是不是取消關(guān)注過啊
聽不懂你在說什么.
保存到數(shù)組就行了.
url_list = ['http://top.chinaz.com/hangye/index_news_{}.html'.format(page) for page in range(1, 67)]
你可以設(shè)置Electron單實例makeSingleInstance,這樣就不會有多個實例窗口了。有篇文章“Electron單實例makeSingleInstance”你可以參考一下。
有問題給我留言哈。
你這個要寫在success里面的,可以寫個函數(shù)把result傳過去,比如
$.ajax({
type: "post",
url: "./cgi/xxxxxxxxxx",
dataType: "json",
data: {FromStation: DepartureCity, ArriveStation: ArrivalCity, DepartureDate: DepartDate},
success: function (result) {
console.log(result);
var resultLen = result.length;
for (var i = 0; i < resultLen; i++) {
$(".lv-thead").after(aaa(result));
}
}
});
function aaa(result){
var tickets = '<li class="lv-tbody" data-testdt="202">\
<div>\
<div class="td col1">\
<h3 class="train">'+ result[i].TrainCode+'</h3>\
</div>\
<div class="td col2">\
<p class="start"><i class="ico-start">Start</i><span>Beijing South</span></p>\
<p class="end"><i class="ico-end">End</i><span>Shanghai Hongqiao</span></p>\
</div>\
<div class="td col2">\
<time class="startime">20:00</time>\
<time class="endtime daytime">12:10\
<span title="車次到達日期 2017-12-23" class="i_2day">+2</span>\
</time>\
</div>\
<div class="td col6">\
<time class="duration">40h10m</time>\
</div>\
<div class="td col3" style="width: 214px">\
<p class="ticketed">Business cabins <span class="price"><em class="g-rmb">¥</em>360</span>\
</p>\
<p class="ticketed">First-class seats <span class="price"><em class="g-rmb">¥</em>720</span>\
</p>\
<p class="ticketed">Second-class seats <span class="price"><em class="g-rmb">¥</em>1144</span>\
</p>\
<p class="ticketed">Advanced soft sleeper <span class="price"><em class="g-rmb">¥</em>360</span></p>\
</div>\
<div class="td col4">\
<p class="surplus">100張</p>\
<p class="surplus">100張</p>\
<p class="surplus"><span style="color: #fc773c">僅2張</span></p>\
<p class="surplus"> </p>\
</div>\
</div>\
</li>';
return tickets ;
}位操作符用于在最基本的層次上,即按內(nèi)存中表示數(shù)值的位來操作數(shù)值。ECMAScript 中的所有數(shù)
值都以 IEEE-754 64 位格式存儲,但位操作符并不直接操作 64 位的值。而是先將 64 位的值轉(zhuǎn)換成 32 位
的整數(shù),然后執(zhí)行操作,最后再將結(jié)果轉(zhuǎn)換回 64 位。對于開發(fā)人員來說,由于 64 位存儲格式是透明的,
因此整個過程就像是只存在 32 位的整數(shù)一樣
位運算 的操作數(shù)都會先對其進行抽象的 ToInt32 操作
ToUint32: (Unsigned 32 Bit Integer)
1.Let number be the result of calling ToNumber on the input argument.
2.If number is NaN, +0, ?0, +∞, or ?∞, return +0.
3.Let posInt be sign(number) × floor(abs(number)).
4.Let int32bit be posInt modulo 232; that is, a finite integer value k of Number type with positive sign and less than 232 in magnitude such that the mathematical difference of posInt and k is mathematically an integer multiple of 232.
5.Return int32bit.
三四步就是個求整取余數(shù)的過程
<<0 對實際的值沒有進行具體的位移操作,但是仍然會進行其中的 ToInt32 操作,在一定的范圍內(nèi)就是簡單的按絕對值取整,超出這個范圍就會變成意想不到的值
用try catch
這里的代碼的邏輯是將4個字節(jié)的int型按字節(jié)分別取出,并不是什么清零操作
PHP-FPM是1:1 模型。單機情況下,如果PHP-FPM配置的最大子進程數(shù)為20,那么就最多可以并發(fā)處理20個請求。
PHP-FPM 采用 master/worker 多進程架構(gòu)。
即:眾多的 worker 進程組成了進程池,等待 master 進程分配任務(wù),而且每個 worker 進程只能同時處理單個任務(wù),前一個處理結(jié)束,才能為下一個服務(wù)。
參考:FPM 配置
按對子進程的管理類型,可通過不同的配置調(diào)整 worker 進程數(shù):
static - 子進程的數(shù)量是固定的(pm.max_children)
ondemand - 進程在有需求時才產(chǎn)生(當請求時,與 dynamic 相反,pm.start_servers 在服務(wù)啟動時即啟動
dynamic - 子進程的數(shù)量在下面配置的基礎(chǔ)上動態(tài)設(shè)置:pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers
版本:PHP-5.6
文件位置:vim sapi/fpm/fpm/fpm.c +93
從 fpm_run 方法中,也可以看出只給每個空閑的子進程分配一個請求任務(wù)。
/* children: return listening socket
parent: never return */
int fpm_run(int *max_requests) /* {{{ */
{
struct fpm_worker_pool_s *wp;
/* create initial children in all pools */
for (wp = fpm_worker_all_pools; wp; wp = wp->next) {
int is_parent;
is_parent = fpm_children_create_initial(wp);
if (!is_parent) {
goto run_child;
}
/* handle error */
if (is_parent == 2) {
fpm_pctl(FPM_PCTL_STATE_TERMINATING, FPM_PCTL_ACTION_SET);
fpm_event_loop(1);
}
}
/* run event loop forever */
fpm_event_loop(0);
run_child: /* only workers reach this point */
fpm_cleanups_run(FPM_CLEANUP_CHILD);
*max_requests = fpm_globals.max_requests;
return fpm_globals.listening_socket;
}
/* }}} */
參考:PHP-FPM運行原理
FPM 只是 PHP 官方實現(xiàn)的 fast-cgi 進程管理器。
對應(yīng)的也有一些替代的方案,比如:采用異步非阻塞多進程模型的 swoole-http-server
參考:swoole-http-server
當然,在現(xiàn)實使用場景中,要根據(jù)實際需求來做技術(shù)選型。
因為//這樣的注釋是在css里是不合法的,它是scss專用的注釋,所以sass-loader將scss轉(zhuǎn)化為css的時候會把//過濾掉。而/**/這樣的是css的合法注釋,你需要配置css-loader的minimize選項來啟用壓縮,就可以刪除注釋了。
貌似沒有這個配置項,只能手動點一下刷新按鈕了吧.
最后一級items 不應(yīng)該是空數(shù)組
這種高度定制化的需求基本上沒有什么類庫處理,而且這個需求也很簡單,自己循環(huán)處理下就能完成阿。
你覺得不用orm框架寫的費勁的話,多熟悉下sql和php數(shù)據(jù)處理方面,就方便多了,
也可以自己寫model 中的方法處理了。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。