直接上代碼
io.on('connection', function (socket) {
console.log('connect: ' + socket.id); // 參數(shù) socket 為連接對(duì)應(yīng)的socket
socket.on('disconnect', function () { // 這里監(jiān)聽 disconnect,就可以知道誰斷開連接了
console.log('disconnect: ' + socket.id);
});
});只有在通過 new 調(diào)用構(gòu)造函數(shù)的時(shí)候才會(huì)產(chǎn)生新對(duì)象,其它賦值操作都是對(duì)同一個(gè)對(duì)象的引用進(jìn)行賦值(或拷貝),也就是說,對(duì)象只有一個(gè),但是會(huì)有很多引用(可以當(dāng)作名稱),
obj = new Object() 這里產(chǎn)生了一個(gè)對(duì)象,同時(shí)產(chǎn)生了它的引用,由全局變量 obj 保存(引用)a = obj,是把 obj 這個(gè)引用賦值給 a,現(xiàn)在 obj 和 a 都指向同一個(gè)歡象createPerson() 的時(shí)候,obj = new Object() 產(chǎn)生了新的對(duì)象,并將新對(duì)象的引用賦值給 obj,這個(gè)時(shí)候 a 仍然引用舊的對(duì)象,只是 obj 在引用新對(duì)象。b = obj,讓 b 與現(xiàn)在的 obj 引用相同,即都引用新對(duì)象a 引用第一個(gè)對(duì)象,b 和 obj 引用第二個(gè)對(duì)象最后擴(kuò)展說明一點(diǎn),如果整個(gè)程序中沒有任何一個(gè)變量引用某個(gè)對(duì)象的時(shí)候,這個(gè)對(duì)象會(huì)被垃圾回收器回收,但回收時(shí)間并不確定。
beforeEach可以在每一個(gè)(需要登錄權(quán)限的)路由進(jìn)入之前檢測(cè)是否具有登錄權(quán)限,但是這個(gè)檢查的邏輯是怎么樣的呢?需要仔細(xì)考慮。
我之前的一個(gè)做法是,登陸成功之后把登錄信息存在本地存儲(chǔ)中(本來是存在vuex中,但是刷新會(huì)消失),然后在beforeEach里檢查本地存儲(chǔ)中的登錄信息,如果登錄信息正確,則進(jìn)行跳轉(zhuǎn),否則跳轉(zhuǎn)到登陸頁。
這個(gè)登錄信息(token)應(yīng)該是具有時(shí)效性的,可以加一點(diǎn)別的什么步驟,防止被本地篡改。
關(guān)于‘http 攔截器 + 后端接口返回的http 狀態(tài)碼’,應(yīng)該是用于一些需要登錄權(quán)限的接口上,即只有登錄才能調(diào)用的接口,在調(diào)用前判斷有沒有登錄權(quán)限,有就進(jìn)行請(qǐng)求,沒有就處理錯(cuò)誤,但這并不夠安全,只有后臺(tái)覺得你是真的有登錄權(quán)限的,才會(huì)讓你調(diào)用接口成功,否則直接返回401;
ajax是異步編程模型。舉個(gè)通俗的例子:
你打電話問書店老板有沒有《ajax》這本書,如果是同步通信機(jī)制,書店老板會(huì)說,您稍等,“我?guī)湍橐幌隆?,然后開始查啊查,等查好了告訴你結(jié)果(返回結(jié)果),您可能是等待10秒,也可能是10分鐘(阻塞的)。而異步通信機(jī)制,書店老板直接說:查好了打電話給你,然后直接掛電話了(不返回結(jié)果)。等查好了,他會(huì)主動(dòng)打電話給你。在這里老板通過“回電話(異步函數(shù)回調(diào))”這種方式來回調(diào)。
由于ajax默認(rèn)是異步請(qǐng)求,因此不會(huì)等ajax的success函數(shù)返回結(jié)果就會(huì)一直往下執(zhí)行。
div哪有焦點(diǎn)事件,你說的應(yīng)該是input或者textarea把
建議你 打印出字體,看看是不是字體導(dǎo)致的問題.
DOMContentLoaded 和 Load 分別對(duì)應(yīng) 頁面 DOMContentLoaded 和 Load 事件觸發(fā)的時(shí)間點(diǎn),即:
DOMContentLoaded:DOM樹構(gòu)建完成。即HTML頁面由上向下解析HTML結(jié)構(gòu)到末尾封閉標(biāo)簽</html> 。
Load:頁面加載完畢。 DOM樹構(gòu)建完成后,繼續(xù)加載html/css 中的圖片資源等外部資源,加載完成后視為頁面加載完畢。
DOMContentLoaded 會(huì)比 Load 時(shí)間小,兩者時(shí)間差大致等于外部資源加載的時(shí)間。
Finish 時(shí)間與DOMContentLoaded 和 Load 并無直接關(guān)系。
Finish 時(shí)間是頁面上所有 http 請(qǐng)求發(fā)送到響應(yīng)完成的時(shí)間,HTTP1.0/1.1 協(xié)議限定,單個(gè)域名的請(qǐng)求并發(fā)量是 6 個(gè),即Finish是所有請(qǐng)求(不只是XHR請(qǐng)求,還包括DOC,img,js,css等資源的請(qǐng)求)在并發(fā)量為6的限制下完成的時(shí)間。
Finish 的時(shí)間比 Load 大,意味著頁面有相當(dāng)部分的請(qǐng)求量,
Finish 的時(shí)間比 Load 小,意味著頁面請(qǐng)求量很少,如果頁面是只有一個(gè) html文檔請(qǐng)求的靜態(tài)頁面,Finish時(shí)間基本就等于HTML文檔請(qǐng)求的時(shí)間。(如下圖)
頁面發(fā)送請(qǐng)求和頁面解析文檔結(jié)構(gòu),分屬兩個(gè)不同的線程,
所以 Finish 時(shí)間與DOMContentLoaded 和 Load 并無直接關(guān)系。
vue模板中的雙括號(hào)語法是用于在模板中插值,而不是在JS代碼中
你的baseUrl感覺有問題,以下是我們的做法給你參考:
common.js里面的公用方法:
exports.bundleUrl = function (self) {
var bundleUrl = self.$getConfig().bundleUrl;
return bundleUrl;
};
//判斷系統(tǒng),安卓返回'android',ios返回'iOS',h5返回'web'
exports.androidOrIos = function (self) {
return self.$getConfig().env.platform;
};
//獲取url地址
exports.getBaseUrl = function (self) {
var androidOrIos = this.androidOrIos(self);
var bundleUrl = this.bundleUrl(self);
var isHttp = bundleUrl.indexOf('http://') >= 0;
var nativeBase;
if (isHttp) {
var i = bundleUrl.indexOf('/dist/');
nativeBase = bundleUrl.slice(0, i) + '/dist/';
} else {
if (androidOrIos == 'android') {
nativeBase = 'file://assets/dist/';
} else if (androidOrIos == 'iOS') {
nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('dist/') + 5);
} else {
var host = 'localhost:12580';
var matches = /\/\/([^\/]+?)\//.exec(bundleUrl);
if (matches && matches.length >= 2) {
host = matches[1];
}
nativeBase = 'http://' + host + '/example/build/';
}
}
var h5Base = './index.html?page=./example/build/';
// in Native
var base = nativeBase;
if (typeof window === 'object') {
base = h5Base;
}
return base;
};
//跳轉(zhuǎn)到指定url頁面
/**
*url 請(qǐng)求地址,前綴已添加,為baseUrl,傳值如:'login/login';
*param為需帶參數(shù),傳值如:'name1=value1&name2=value2'
*callback為回調(diào)函數(shù),傳值如:function(){};
**/
exports.jump = function (self, url, param, callback) {
var navigator = weex.requireModule('navigator');
var baseUrl = this.getBaseUrl(self);
var param = param ? param : '';
var url = {'url': baseUrl + url + '.js?' + param, 'animated': 'true'};
navigator.push(url, function (e) {
if (callback) {
typeof callback == 'function' && callback(res);
}
});
}
在頁面調(diào)用:
import common from './common/common';
export default {
methods: {
toTest() {
common.jump(this, 'test/test');
}
}
}
no way (不可能)
你還是上代碼吧。。。而且你這個(gè)angular拼的太不走心了。。。
用了什么打包工具呢,可能配置的不對(duì)
<module>../dat-product</module>
把這行刪了就行
當(dāng)nickName有值后,再更改firstName或lastName將不再 return this.firstName + '.' + this.lastName
不是同一個(gè)series,具體修改方案參照案例和文檔
axios 了解下
你沒有使用插件把 css 單獨(dú)打成一個(gè)文件,所以樣式是通過 js 動(dòng)態(tài)創(chuàng)建 style 標(biāo)簽插入頁面的,你覺得這部分代碼是哪來的?就是 style-loader!所以這種方式是會(huì)把 style-loader 打進(jìn)去來完成動(dòng)態(tài)創(chuàng)建 style 標(biāo)簽引入樣式的功能。你可以選擇使用 mini-css-extract-plugin 插件將 css 單獨(dú)提取為一個(gè)文件來避免此問題,這一步都是產(chǎn)品模式下配置的。此外,在開發(fā)模式下分析 bundle 沒什么意義。
for(var i=0;i<mydata.length;i++){
var field = "field" + i;
window[field] = mydata[i].CREW_NAME;//1號(hào)機(jī)組、2號(hào)機(jī)組 、3號(hào)機(jī)組 、4號(hào)機(jī)組
}
console.log(window.field0);
console.log(window.field1);
使用普通對(duì)象存儲(chǔ)
var fields = {};
for(var i=0;i<mydata.length;i++){
var field = "field" + i;
fields[field] = mydata[i].CREW_NAME;//1號(hào)機(jī)組、2號(hào)機(jī)組 、3號(hào)機(jī)組 、4號(hào)機(jī)組
}
console.log(fields.field0);
console.log(fields.field1);北大青鳥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)師。