真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jquery單頁(yè),jquery單頁(yè)面框架

jquery mobile 動(dòng)態(tài)生成多個(gè)頁(yè)面的元素怎么刷新

jquery 你寫(xiě)方法動(dòng)態(tài)刷新頁(yè)面是沒(méi)有問(wèn)題。 只不過(guò) jquery mobile 支持單頁(yè)模式。 我很懷疑 你在page容器中 將data-dom-cache 設(shè)置成了true。 這樣的效果是

為鄂爾多斯等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及鄂爾多斯網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、鄂爾多斯網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1 你已經(jīng)打開(kāi)過(guò)的頁(yè)面不再走后臺(tái) (不浪費(fèi)客戶流量)

2 如果你的jquery選擇器 使用不當(dāng) 你只是在給第一個(gè)頁(yè)面刷新元素。(舉例: 你選擇了一個(gè)列表中的第一條信息。 打開(kāi)一個(gè)詳細(xì)頁(yè)面。 進(jìn)行了js操作后或者沒(méi)進(jìn)行js操作 再返回列表頁(yè)點(diǎn)擊第二條信息 再打開(kāi)一個(gè)詳細(xì)頁(yè)面時(shí) 你發(fā)現(xiàn)你的js方法“失靈了” 實(shí)際上因?yàn)檫x擇器指定的不對(duì) js在給你更新第一個(gè)詳細(xì)頁(yè)面。 單頁(yè)模式會(huì)將你打開(kāi)過(guò)的頁(yè)面全部累加起來(lái) 選擇器 選取不正確 是無(wú)法更新后面打開(kāi)的頁(yè)面的。 必須正確指定自己想要刷新的頁(yè)面。)

我懷疑你是第二種情況

單頁(yè)應(yīng)用什么框架好

所謂單頁(yè)應(yīng)用,指的是在一個(gè)頁(yè)面上集成多種功能,甚至整個(gè)系統(tǒng)就只有一個(gè)頁(yè)面,所有的業(yè)務(wù)功能都是它的子模塊,通過(guò)特定的方式掛接到主界面上。它是AJAX技術(shù)的進(jìn)一步升華,把AJAX的無(wú)刷新機(jī)制發(fā)揮到極致,因此能造就與桌面程序媲美的流暢用戶體驗(yàn)。

開(kāi)發(fā)框架

ExtJS可以稱為第一代單頁(yè)應(yīng)用框架的典型,它封裝了各種UI組件,用戶主要使用JavaScript來(lái)完成整個(gè)前端部分,甚至包括布局。隨著功能逐漸增加,ExtJS的體積也逐漸增大,即使用于內(nèi)部系統(tǒng)的開(kāi)發(fā),有時(shí)候也顯得笨重了,更不用說(shuō)開(kāi)發(fā)以上這類運(yùn)行在互聯(lián)網(wǎng)上的系統(tǒng)。

jQuery由于偏重DOM操作,它的插件體系又比較松散,所以比ExtJS這個(gè)體系更適合開(kāi)發(fā)在公網(wǎng)運(yùn)行的單頁(yè)系統(tǒng),整個(gè)解決方案會(huì)相對(duì)比較輕量、靈活。

但由于jQuery主要面向上層操作,它對(duì)代碼的組織是缺乏約束的。如何在代碼急劇膨脹的情況下控制每個(gè)模塊的內(nèi)聚性,并且適當(dāng)在模塊之間產(chǎn)生數(shù)據(jù)傳遞與共享,就成為了一種有挑戰(zhàn)的事情。

為了解決單頁(yè)應(yīng)用規(guī)模增大時(shí)候的代碼邏輯問(wèn)題,出現(xiàn)了不少M(fèi)V*框架,他們的基本思路都是在JS層創(chuàng)建模塊分層和通信機(jī)制。有的是MVC,有的是MVP,有的是MVVM,而且,它們幾乎都在這些模式上產(chǎn)生了變異,以適應(yīng)前端開(kāi)發(fā)的特點(diǎn)。

這類框架包括Backbone,Knockout,AngularJS,Avalon等。

jquery怎么做單頁(yè)面應(yīng)

具體描述一下,或是頁(yè)面邏輯處理比較多可以嘗試使用jsp來(lái)寫(xiě)頁(yè)面。html沒(méi)法使用java代碼

jQuery和AngularJS的區(qū)別淺析

1.不要首先設(shè)計(jì)好你的頁(yè)面,然后再通過(guò)DOM操作去修改它

在jQuery中,你首先設(shè)計(jì)了一個(gè)page,然后再去動(dòng)態(tài)修改它的內(nèi)容,這是因?yàn)閖Query被設(shè)計(jì)用來(lái)進(jìn)行擴(kuò)展并在這個(gè)前提下大幅度地增加和修改內(nèi)容,但是在angularjs中,你必須在心中先設(shè)計(jì)好你的架構(gòu),

從一開(kāi)始,你就要摒棄“我擁有一個(gè)DOM元素并且想讓它去做某件事”,代之為“我需要完成什么任務(wù),然后接著設(shè)計(jì)你的應(yīng)用,最后再去設(shè)計(jì)你的視圖view層”。

2.不要使用angularjs去擴(kuò)展jQuery

相應(yīng)地,不要存在說(shuō)讓jQuery去干某些事情,然后在此基礎(chǔ)上添加angularjs的功能讓它去管理model以及controller的想法。所以我一般不推薦AngularJS開(kāi)發(fā)新手同時(shí)使用jQuery,至少在他們還沒(méi)有適應(yīng)AngularJS的開(kāi)發(fā)模式之前不會(huì)去推薦這樣做,但是當(dāng)你真正開(kāi)始適應(yīng)angularjs 的方式之后,你會(huì)發(fā)覺(jué)這是一件很誘人的事情。

我曾經(jīng)看到過(guò)很多開(kāi)發(fā)者采用將150到200行代碼的jQuery插件利用angularjs的回調(diào)以及$apply方法封裝起來(lái),這種方式使得代碼看起來(lái)極其復(fù)雜,但是實(shí)際上他們讓這些插件跑起來(lái)了!問(wèn)題在于,在大部分情況下jQuery插件能夠用angularjs進(jìn)行重寫(xiě),并且可能只會(huì)使用很少量的代碼,同時(shí)這種重寫(xiě)使得代碼很直觀且易于理解,這顯然好過(guò)于將jQuery代碼直接做封裝。

所以最后說(shuō),當(dāng)你遇見(jiàn)問(wèn)題的時(shí)候,首先要以angularjs的思維進(jìn)行思考,如果找不到解決方案,可以求助于社區(qū),如果說(shuō)沒(méi)有人能夠給出一個(gè)簡(jiǎn)單的方案,那么才考慮使用jQuery,不要讓jQuery成為你的拐杖,否則你永遠(yuǎn)掌握不了AngularJS。

3.要以架構(gòu)為中心進(jìn)行思考

首先你要知道單頁(yè)應(yīng)用屬于web應(yīng)用,它們不是傳統(tǒng)的多網(wǎng)頁(yè)網(wǎng)站,所以我們要同時(shí)作為一個(gè)服務(wù)端和客戶端開(kāi)發(fā)者的思維進(jìn)行思考,我們需要思考如何將我們的應(yīng)用分為獨(dú)立的,可擴(kuò)展的以及可測(cè)試的部分。

數(shù)據(jù)綁定

這是到目前為止AngularJS最令人矚目的特性了,在數(shù)據(jù)綁定方面它舍棄了對(duì)DOM的操作方式,而這一切都是由AngularJS來(lái)自動(dòng)更新視圖,你不必寫(xiě)操作dom的代碼,在jQuery中,我們常常按照響應(yīng)事件并修改視圖

區(qū)別model層

在jQuery中,DOM類似于一種model,但是在AngularJS中,我們擁有不同于jQuery中的model層以便我們可以以任何我們想要的方式去管理它,它是完全獨(dú)立于視圖之外的。這種方式是有助于我們進(jìn)行數(shù)據(jù)綁定并且可以保持對(duì)分離的關(guān)注,而且可以具備更好的可測(cè)試性。

關(guān)注點(diǎn)分離

以上所講都和這個(gè)總體的話題相關(guān):讓你關(guān)注分離,你的視圖層顯示記錄,你的model層代表數(shù)據(jù),你還有個(gè)服務(wù)層用來(lái)執(zhí)行這些可復(fù)用的任務(wù)。你使用directive來(lái)執(zhí)行dom操作并擴(kuò)展你的視圖,并將它和controller連接起來(lái),這也就是我在其他方面提到的有關(guān)于增強(qiáng)可測(cè)試性的原因。

依賴注入

幫助我們解決關(guān)注點(diǎn)分離的是依賴注入(DI),如果你是一個(gè)服務(wù)端開(kāi)發(fā)者(Java或者PHP),你可能已經(jīng)很熟悉這個(gè)概念了,但是如果你是從事客戶端開(kāi)發(fā)的,你會(huì)覺(jué)得這個(gè)概念可能有些多余和純屬追求時(shí)髦,但是實(shí)際上不是這樣。

從廣義的角度講,DI意味著你可以自由地聲明組件然后從這些組件中進(jìn)行實(shí)例化,這是理所當(dāng)然的。你不必知道加載順序,文件位置等諸如此類的事情,這種魔力不是能夠立即看到,但是我會(huì)給出一個(gè)例子:測(cè)試。

我們說(shuō)在應(yīng)用中,我們需要一個(gè)依賴于應(yīng)用狀態(tài)和本地存儲(chǔ)的服務(wù)用來(lái)通過(guò)一個(gè)rest API來(lái)執(zhí)行服務(wù)端存儲(chǔ),當(dāng)我們測(cè)試我們的controller時(shí),我們不必和服務(wù)端進(jìn)行通信,畢竟只是在測(cè)試controller而已。我們僅添加一個(gè)與我們最初組件相同的mock服務(wù),注入器能夠確保我們的controller獲得一個(gè)虛擬的服務(wù),controller自身不必也不需要了解這種差異。

4.以測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)

這部分是一個(gè)架構(gòu)的第三部分,但是他是很重要的,以至于我需要將它放在最重要的位置。

在我們所有見(jiàn)過(guò)的,用過(guò)的以及寫(xiě)過(guò)的jQuery插件中,有多少具有一套測(cè)試組件呢?其實(shí)并不多,這是因?yàn)閖Query在測(cè)試上不易控制,但是AngularJS卻與此不同。

在jQuery中,測(cè)試的唯一方法是使用一個(gè)demo頁(yè)去創(chuàng)建一個(gè)獨(dú)立組件來(lái)使得我們的測(cè)試可以執(zhí)行dom操作。我們接下來(lái)我們必須開(kāi)發(fā)一個(gè)獨(dú)立的組件然后將它集成到我們的應(yīng)用中來(lái),這是多不方便??!在很多情況下,當(dāng)我們使用jQuery開(kāi)發(fā)實(shí)際上是做了很多重復(fù)開(kāi)發(fā)而不是以測(cè)試驅(qū)動(dòng)的開(kāi)發(fā),這又能怪我們嗎?

但是在AngularJS中我們可以關(guān)注分離點(diǎn),所以我們可以做一些測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)。

5.從概念上講,指令不是打包的jQuery

你常常聽(tīng)說(shuō),dom操作只能在指令中,這是必須的,你必須嚴(yán)肅對(duì)待。

讓我們深入討論,

某些指令僅僅是裝飾我們的視圖(例如ngClass),因此有時(shí)候直接操作dom是可以的,但是當(dāng)一個(gè)指令類似于一個(gè)小物件并且擁有自己的模板,那么它應(yīng)該當(dāng)做一個(gè)分離的關(guān)注點(diǎn),這就是說(shuō),它的模板需要和link中的執(zhí)行邏輯以及其他controller函數(shù)分離開(kāi)。

AngularJS擁有一整套的工具可以是這種分離更簡(jiǎn)單,使用ngClass指令,我們可以動(dòng)態(tài)地更新class,使用ngBind我們可以進(jìn)行雙向數(shù)據(jù)綁定,使用ngShow和ngHide 我們

可以采用編程的形式顯示和隱藏一個(gè)元素,也包括我們自己寫(xiě)的很多指令。換句話說(shuō),我們可以不用Dom操作而完成所有工作,dom操作越少,指令越容易測(cè)試,越容易指定他們的style屬性,就越容易在將來(lái)改變他們,那么他們就越容易復(fù)用和分發(fā)。

我看過(guò)很多AngularJS新手使用指令封裝一大串 jQuery代碼,換句話說(shuō),既然我不能在controller里面進(jìn)行dom操作,那么我可以將他放在指令中,雖然這相對(duì)于直接操作dom好很多,但是任然是錯(cuò)誤的。

看看我們?cè)谏厦娴挠涗?,即使我們將其放在一個(gè)指令中,我們?nèi)稳恍枰訟ngular的方式去操作它,這種方式不執(zhí)行dom操作!在很多時(shí)候dom操作是需要的,但是這種情況比你想的要少得多。當(dāng)我們需要做dom操作的時(shí)候先問(wèn)問(wèn)自己這里是否必須這樣做,這才是一種更好的方式。

總結(jié)

不要總使用jquery ,甚至不要去引用它,它會(huì)阻止你前進(jìn),當(dāng)我們回到這個(gè)問(wèn)題—你知道你怎么在AngularJS中以jquery方式解決問(wèn)題,但是當(dāng)你使用諸如$等選擇器時(shí),你要想想它們實(shí)際上是禁錮了AngularJS,如果你不知道怎么不用jQuery實(shí)現(xiàn),那么去請(qǐng)教別人,一次一次去問(wèn),最好的方式是不需要使用jQuery,使用jQuery只會(huì)導(dǎo)致你的工作量提升。


網(wǎng)頁(yè)題目:jquery單頁(yè),jquery單頁(yè)面框架
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/dsgjdcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部