js中替換所有的指定字符 js拆分字符串?
js拆分字符串?永遠(yuǎn)不變:橫向切割業(yè)務(wù)/功能,縱向切割技術(shù)層。首先,site.js按照功能劃分成幾個(gè)獨(dú)立的模塊。:如果site.js只在一個(gè)頁(yè)面上使用,會(huì)根據(jù)頁(yè)面上的功能拆分成模塊;或者site.js
js拆分字符串?
永遠(yuǎn)不變:橫向切割業(yè)務(wù)/功能,縱向切割技術(shù)層。
首先,site.js按照功能劃分成幾個(gè)獨(dú)立的模塊。
:如果site.js只在一個(gè)頁(yè)面上使用,會(huì)根據(jù)頁(yè)面上的功能拆分成模塊;或者site.js在多個(gè)頁(yè)面中使用,可以分成一對(duì)一頁(yè)面的小入口模塊。這些頁(yè)面之間可能有類似的模塊,這些模塊也是分開的。入口模塊放置每個(gè)頁(yè)面的獨(dú)立邏輯,并組織共享模塊。以一個(gè)聊天工具為例,可以拆解為:
雖然是并列放置,但是組件是有層次的,小組件有獨(dú)立的功能。大組件負(fù)責(zé)初始化和組合小組件。
然后從技術(shù)架構(gòu)的角度將代碼分為多個(gè)層。
注意,并不是所有的項(xiàng)目都需要?jiǎng)澐謱哟?,層次可以根?jù)項(xiàng)目的大小和復(fù)雜程度來(lái)劃分。越是復(fù)雜的項(xiàng)目,越要注意把代碼分成不同的層次,而簡(jiǎn)單的項(xiàng)目就沒必要了,甚至代碼都不需要放在不同的文件里。
技術(shù)分層的方案是MVC。無(wú)論你或流行的框架如何解讀MVC,MVC都是一個(gè)隨常數(shù)變化的架構(gòu)。例如:
成分
有一個(gè)視圖控制器,視圖和控制器關(guān)系比較密切,可以放在一起:
Chat.js主要用于初始化其他模塊,綁定事件,處理事件,充當(dāng)控制器。
Style.css樣式,沒什么好說(shuō)的。
有了模板,如果業(yè)務(wù)簡(jiǎn)單,還可以直接在chat.js中去掉拼接字符串
模型
如果項(xiàng)目很簡(jiǎn)單,這就是與服務(wù)器交互的部分,比如Ajax請(qǐng)求。如果項(xiàng)目比較復(fù)雜,可以分為兩層:Ajax請(qǐng)求和模型(視圖模型或者數(shù)據(jù)集中管理的地方)。這一部分可能在許多組件中使用,因此它可以是獨(dú)立的。
路由器
不用說(shuō),如果你的項(xiàng)目復(fù)雜到要有路由器,那就單獨(dú)放置。
單說(shuō)組件:
模塊基礎(chǔ)包括:
Config:來(lái)自源全局或父組件的配置。
狀態(tài):自身的狀態(tài),比如聊天是流暢還是短暫,這是其他方法操作過(guò)程中判斷進(jìn)一步操作所需要的。
BindEvents:您可以在這里為$ selecting綁定事件放置大量代碼。
EventHandler:許多事件處理程序。
ModifyView:對(duì)視圖的許多更改
每一層都有許多模塊,這些模塊根據(jù)業(yè)務(wù)/功能進(jìn)行細(xì)分。
工具:
分割的原則都在那里,工具的選擇并不難。
項(xiàng)目并不復(fù)雜也不重要,去掉后模塊也不多,可以使用像RequireJS,Sea.js這樣的加載器主要是為了處理JS的模塊化。直接壓制后,它 不用合并就可以在線運(yùn)行。
項(xiàng)目復(fù)雜重要,模塊多,可以用browserify和CommonJS組織代碼(也可以繼續(xù)用RequireJS,生態(tài)和工具都可以)。上線時(shí)通過(guò)工具做好合并壓縮工作。
如果你采用非常標(biāo)準(zhǔn)的模塊化開發(fā),即每個(gè)模塊都有自己的模板、控制器、樣式和圖片,那么就用webpack。webpack的優(yōu)勢(shì)就像它的名字一樣,不是js bundle,不是js loader,而是webpack,就是其他的資源也可以幫你很好的打包處理,對(duì)于完全模塊化的開發(fā)要好得多。唐 不要考慮如何組織JS以外的資源。
有什么辦法在一個(gè)頁(yè)面通過(guò)js修改另一個(gè)頁(yè)面里對(duì)應(yīng)標(biāo)簽的內(nèi)容?
我想用一個(gè)前景頁(yè)面來(lái)模擬背景。
跨選項(xiàng)卡頁(yè)面,除非它們?cè)谕粋€(gè)域中,并且相關(guān)事件嵌入在另一個(gè)頁(yè)面中,否則可以使用postmessage或localstorge。如果是iframe,跨域是不可以的,同域可以。
其他的因果技術(shù)比如逆向生成或者修改瀏覽器參數(shù)或者劫持都不算,因?yàn)槠胀ㄓ脩羰遣粫?huì)做的。