canvas有個(gè)測(cè)量文本長(zhǎng)度的api(measureText), 所以居中就很簡(jiǎn)單了
context.fillText(str, (canvas.width - context.measureText(str).width) / 2, 0)
當(dāng)然如果你文本的長(zhǎng)度超過canvas的寬度那你就必須另外處理了。
因?yàn)槟愕?/p>
class W:
headers = {"user-agent": UserAgent().random,}
只會(huì)在類定義的時(shí)候執(zhí)行一次,應(yīng)該換成
class W:
def make_new(self):
return {"user-agent": UserAgent().random,}從執(zhí)行結(jié)果來看,區(qū)別不大;從代碼架構(gòu)層面來看,比較推薦“事件-偵聽”機(jī)制。因?yàn)楹笳哂兄诟缸咏M件之間解耦,即父組件不要求一定是這個(gè)子組件,子組件也不要求父組件一定要傳處理函數(shù)不然就報(bào)錯(cuò)。
具體不行的表現(xiàn)是什么?是不生效,還是報(bào)錯(cuò)?
檢查兩臺(tái)電腦IE瀏覽器的“Internet選項(xiàng)”配置是否一致。
expires選項(xiàng)用來設(shè)置“cookie 什么時(shí)間內(nèi)有效”。expires其實(shí)是cookie失效日期,expires必須是 GMT 格式的時(shí)間(可以通過 new Date().toGMTString()或者 new Date().toUTCString() 來獲得)。
如expires=Thu, 25 Feb 2016 04:18:00 GMT表示cookie講在2016年2月25日4:18分之后失效,對(duì)于失效的cookie瀏覽器會(huì)清空。如果沒有設(shè)置該選項(xiàng),則默認(rèn)有效期為session,即會(huì)話cookie。這種cookie在瀏覽器關(guān)閉后就沒有了。
expires 是 http/1.0協(xié)議中的選項(xiàng),在新的http/1.1協(xié)議中expires已經(jīng)由 max-age 選項(xiàng)代替,兩者的作用都是限制cookie 的有效時(shí)間。expires的值是一個(gè)時(shí)間點(diǎn)(cookie失效時(shí)刻= expires),而max-age 的值是一個(gè)以秒為單位時(shí)間段(cookie失效時(shí)刻= 創(chuàng)建時(shí)刻+ max-age)。
另外,max-age 的默認(rèn)值是 -1(即有效期為 session );若max-age有三種可能值:負(fù)數(shù)、0、正數(shù)。負(fù)數(shù):有效期session;0:刪除cookie;正數(shù):有效期為創(chuàng)建時(shí)刻+ max-age;
業(yè)務(wù)需求是關(guān)閉瀏覽器干掉cookie,之前的思路是想著不設(shè)置expire/max-age關(guān)閉瀏覽器即cookie失效,但繞了一大圈,發(fā)現(xiàn)還是不行,最后找了一個(gè)模棱兩可的辦法, 即監(jiān)聽關(guān)閉瀏覽器觸發(fā)一個(gè)方法,設(shè)置cookie失效,但監(jiān)聽瀏覽器的方法找找看
因?yàn)槟愕牟迦肱判蚝瓦x擇排序都是對(duì)原序列排序,排序后就已經(jīng)是好序了
import functools, random, time, copy
list = [random.random() for i in range(1,10000)]
def timer(func):
@functools.wraps(func)
def wrapper(*args, **kw):
t0 = time.time()
result = func(*args, **kw)
t1 = time.time()
print('Total running time %s : %s'
%(func.__name__, str(t1 - t0))
)
return func(*args, **kw)
return wrapper
@timer
def insert_sort(l):
L = copy.copy(l)
for i in range(1, len(L)):
key = L[i]
j = i - 1
while j >= 0:
if L[j] > key:
L[j + 1],L[j] = L[j],key
j -= 1
return L
@timer
def select_sort(l):
lists = copy.copy(l)
count = len(lists)
for i in range(0, count):
min = i
for j in range(i + 1, count):
if lists[min] > lists[j]:
min = j
lists[min], lists[i] = lists[i], lists[min]
return lists
@timer
def my_sort(lists):
return sorted(lists)
out = my_sort(list)
out = insert_sort(list)
out = select_sort(list)
out = insert_sort(list)
out = select_sort(list)
copy一下,兩次排序時(shí)間基本一致
http和https這里沒混吧
要后臺(tái)確認(rèn)
1、是不是已經(jīng)保存sessionID
2、在請(qǐng)求頭中是否通知瀏覽器設(shè)置cookie
#include <stdlib.h>
#include <iostream>
using namespace std;
const int maxn = 102;
int a[maxn][maxn];
int si,sj;
int n,m;
int dx[]= {-1,0,1,0};
int dy[]={0,-1,0,1};
int f( int a,int b) {return a>b? (a-b):(b-a);}
void bfs(int x,int y,int time,int &ok)
{
a[x][y]=0; int r = 0,c=0,max =0;
for ( int i =0;i<4;++i )
if (x+dx[i]>=0&&x+dx[i]<n&&y+dy[i]>=0&&y+dy[i]<m && a[x+dx[i]][y+dy[i]]>max )
{
r= x+dx[i];c=y+dy[i]; max=a[r][c];
}
if (!r&&!c) return;
if (f(si,r)+f(sj,c)<=time ) {ok =time;return;}
bfs(r,c,time+1,ok);
}
int main(int argc, char** argv) {
while ( cin>>n>>m&&n>0&&m>0)
{
for ( int i =0;i<n;++i )
for ( int j =0;j<m;++j) cin>>a[i][j];
cin>>si>>sj;
int ok =0;
bfs(0,0,1,ok);
if ( ok) cout<<ok<<endl;
else cout<<"impossible\n";
}
return (EXIT_SUCCESS);
}建議了解下 react 的基本語法
在主線程中,調(diào)用webContents.send()方法的對(duì)象用錯(cuò)了。
往哪個(gè)窗口對(duì)應(yīng)的渲染線程中發(fā)消息,就使用哪個(gè)窗口對(duì)象來調(diào)用。
上面改為page2WindowObject.webContents.send()就可以了
<button @click.native="test">按鈕</button>
試一下 事件修飾服
es6采用樓上的方法;
es5寫法:
nArr = json.filter(function(item){
return item.FromStation === '北京';
});
不過建議做下簡(jiǎn)單的方法封裝,將過濾關(guān)鍵詞作為變量傳入方便隨時(shí)更換關(guān)鍵詞
function filterKey(key){
return json.filter(function(item){
return item.FromStation === key;
})
}我把你的大作業(yè)都看了遍, 發(fā)現(xiàn)有一個(gè)問題: LIST結(jié)構(gòu)體里面的head是一個(gè)STUDENT *, 而你整個(gè)項(xiàng)目都沒有對(duì)head進(jìn)行過malloc, 所以直接對(duì)head進(jìn)行->解引用操作是undefined behavior.
而你這里的student正是newList->head, 所以"無法給結(jié)構(gòu)體中一個(gè)變量賦值"是很正常的, 因?yàn)橐呀?jīng)是undefined behavior, 所以不是正常的代碼, 產(chǎn)生任何結(jié)果都是合理的.
解決途徑: createNewList函數(shù)里面增加newList->head = malloc(sizeof STUDENT);
PS: 小小的codereview, 在c語言中, malloc不要在前面顯式cast, 這是多余的, 也會(huì)掩蓋你未include某些關(guān)鍵頭文件的錯(cuò)誤. c++則必須cast, 因?yàn)閏++不允許void*(malloc的返回類型)隱式轉(zhuǎn)換到任意指針.
PPS: 寫純c不要用vs, vs的c標(biāo)準(zhǔn)是非常殘廢的, 用clion或者codeblocks吧.
不知道是不是你想要的:
https://www.xiatianlong.com/n...
之前看過的一個(gè)帖子,分享給你。
process.nextTick 永遠(yuǎn)大于 promise.then,原因其實(shí)很簡(jiǎn)單。。。在Node中,_tickCallback在每一次執(zhí)行完TaskQueue中的一個(gè)任務(wù)后被調(diào)用,而這個(gè)_tickCallback中實(shí)質(zhì)上干了兩件事:
1.nextTickQueue中所有任務(wù)執(zhí)行掉(長(zhǎng)度最大1e4,Node版本v6.9.1)
2.第一步執(zhí)行完后執(zhí)行_runMicrotasks函數(shù),執(zhí)行microtask中的部分(promise.then注冊(cè)的回調(diào))
所以很明顯 process.nextTick > promise.then
作者:何幻
鏈接:https://www.zhihu.com/questio...
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
export 只能在最外層。
let dd=null
req.on('end',() => {
//obj = eval ("(" + html + ")");
obj = JSON.parse(html);
//console.log(obj);
dd=obj
});
});
export {dd}
session就是這樣的, session原意是會(huì)話, 會(huì)話的有效期是指在用戶最后一次請(qǐng)求開始多長(zhǎng)時(shí)間無操作時(shí)就失效.
所以你的session有效期是1800秒, 但是你在1000秒的時(shí)候又做了操作, 所以本次會(huì)話并沒有過期.
客戶端真實(shí)IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
獲得客戶端真實(shí)IP地址的方法二:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
以上方法還不行的話就采用如下方法:
/**
* 獲取當(dāng)前網(wǎng)絡(luò)ip
* @param request
* @return
*/
public String getIpAddr(HttpServletRequest request){
String ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
//根據(jù)網(wǎng)卡取本機(jī)配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
}
}
//對(duì)于通過多個(gè)代理的情況,第一個(gè)IP為客戶端真實(shí)IP,多個(gè)IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
return ipAddress;
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(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
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(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庫(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ù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。