日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAO总结

發布時間:2024/8/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAO总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Application Structure

?

Web App-------------------------------------------------------------->Server/BW Web Service-------------------------------->DataBase

?

從Request------Server的結構來設計應用。

Ajax Request相當于URL request。

一個是局部刷新,一個是整頁刷新。

這個是從Life Cycle來看的。一個Life Cycle 就是Request------------>Callback---------------->Call func

但是整個流程可以包含多個Life Cycle.

一個Life Cycle是一個單元。

這個是和業務無關的東西,即生命周期。


?

?

RPA是通過URL Request來更新HTML, <script>加載JS。 ? ? ? ? ? 一次跳轉,相當于頁面切換。數據通過 Request JSON, XML。

SPA是通過Ajax Request來更新HTML, 加載js。        一次Request HTML,相當于頁面切換。數據通過 Request JSON是共性。

?

Round Page Application頁面切換通過URL Request.

Single Page Application頁面切換通過Ajax Request HTML, script.

?

RPA Data通過Request JSON, Text, XML.

SPA Data通過Request JSON, Text, XML.

?

SPA大致的Life Cycle

Request HTML, JS1----------------------------------->CallBack HTML, JS1---------------------------->Call JS1中的func(Request Text, JSON, XML...).

JS1中 Request JSON, Text, XML...

?

URL Request HTML, script.js File-----------> Render Page file-------------------> Call script.js file's Func (get/send?Data(Text, JSON, XML))

[Ajax Request HTML, script.js File---------> CallBack HTML, script.js file(eval)](這相當于1步)---> Call script.js file's Func (get/send Data(Text, JSON, XML))

任何頁面切換都是從Request HTML,JavaScript開始的。

?

========>在SAO中,Request HTML, Script.js File時并不加載數據Data,Data在Script.js中加載。

Data數據都是在<script>或者script.js中加載。

<script>, script.js負責加載數據, 頁面生成,事件響應。

?

<script>, script.js-------------------- Data(Text, JSON, XML) ------------------------>Server

<script>, script.js主要的內容就是set Data, send Data.?


?

1.Ajax Request HTML, script.js File/CallBack(eval) HTML, script.js file -------------------------->2.<script>, script.js響應事件,Get/Send Data

?


?

關于SPA

innerHTML中的<script> // </script>, <script src=""></script>并不能執行。因此 Ajax Request HTML并不能切換頁面,還需要Ajax Request script.js File。

同時JS的執行不能依賴于HTML 頁面加載的事件,比如onload,而是要依賴call,調用。

?

JS的調用與執行,之前依賴于頁面的事件,比如onload,或者是加載的順序來執行。

SPA中只能依賴于調用,不能依賴于加載的順序來執行。

JS的執行最好不要依賴于加載完立即執行。應該與加載解耦。

執行要依賴調用,不依賴加載。

JS最好是只加載,比如eval(),不調用內部方法。

JS實現文件加載-->eval();與方法調用-->call_fun()分離。

文件加載-->即eval():不涉及任何的js文件中的代碼。

方法調用-->即call_fun:這個才會涉及到js文件中的代碼。

JS文件在加載的時候會根據內容進行調用,但是加載代碼的時候也可以不調用。

故代碼最好不要有調用,這樣就可以加載即執行與調用分離。

邊加載邊執行,調用也會執行代碼,最好是代碼不要有調用的內容。

代碼執行后再調用。順序加載并執行與調用分離。執行時可以不用關心js文件里的代碼,調用時才關心js文件的代碼。

===>代碼中不要有調用,不然在加載并執行時會去調用代碼內容,調用會改變邏輯或者數據。

這樣就可以在加載并執行時不用關心代碼中的業務邏輯,因為此時不會調用代碼

加載并執行時或者eval()執行時,不要調用代碼邏輯

就是說代碼中不要有直接調用的代碼,否則在加載執行時會調用。而應通過其他方式來調用。不要直接調用,否則在加載執行時會調用。

?

加載并執行時其實是和代價有關系的,如果代碼中沒有直接的調用,那么是不會去調用,否則就會調用。

?

加載是和代碼內容有關系,代碼中不要有調用的部分。加載時會執行js代碼,但是不要有調用會改變代碼邏輯。

?

?

加載并執行時不要改變代碼邏輯,不要有調用會改變代碼邏輯。

?


以上部分不需要去看具體的代碼邏輯,只需要關心文件的加載即可。

?

接下來就需要關心代碼的調用,代碼邏輯的改變。需要看代碼的邏輯。-------->即看代碼。上面的加載并執行可以不要看代碼里的邏輯,因為加載并執行時并不會調用代碼,來改變代碼邏輯。

之所以加載并執行時會阻塞下面HTML的渲染,是因為執行js可能會調用代碼改變代碼邏輯。

?


?

如何看懂script.js file里的業務流程,結構。

結構:順序,選擇,循環

流程:輸入數據(對象)----->輸出數據(對象)。

通常是輸入參數,輸出參數,業務流程即數據流向。

不管數據有多少,通常會從輸入參數,經過多次中間參數,形成最終的一個參數或者數據。

?

數據要么輸入參數-------->相當于賦值給輸出參數,要么是賦值。


?https://github.com/maxzhang/maxzhang.github.com/issues/8

?

https://github.com/zhaoda/spa


?

每個screen都是獨立的,與其他screen是無關的,獨立的,分離的。數據要獨立,分離。

從這個角度來看待SAO項目就可以比較好理解了。

每個loadscreen中的init方法要獨立,不依賴screen以外的js。

?

?


?

總結

以上是生活随笔為你收集整理的SAO总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。