flash调用swf文件服务器,浏览器如何加载Flash文件? (SWF)
加載Flash文件有很多部分,更常見(jiàn)的是HTML頁(yè)面。
我將從HTML頁(yè)面的頂部開(kāi)始,我敦促其他人糾正我可能犯的任何錯(cuò)誤。
加載頁(yè)面
當(dāng)收到HTML頁(yè)面時(shí),瀏覽器會(huì)將其解析為文檔對(duì)象模型(DOM),以便它具有每個(gè)元素的編程表示。瀏覽器遍歷DOM樹中的每個(gè)節(jié)點(diǎn)并根據(jù)需要填充它。
對(duì)于大多數(shù)節(jié)點(diǎn),這只是創(chuàng)建一個(gè)新的DOM元素,如div,p或a;但有些內(nèi)容需要加載或更換。
表單元素(input,select,button,textarea)將替換為這些表單字段的特定于瀏覽器的表示形式。
用作樣式表的
link元素是異步加載的。隨著外部資源的加載,DOM繼續(xù)解析頁(yè)面。
另一方面,
script元素是同步加載的。在腳本完成加載和執(zhí)行之前,DOM無(wú)法繼續(xù)解析樹,如果加載失敗或執(zhí)行有錯(cuò)誤,則無(wú)法解析。
img個(gè)元素是異步加載的,但允許onload回調(diào)確定它們何時(shí)完成加載。在所有onload元素完成加載(或失敗)之前,DOM無(wú)法觸發(fā)窗口的img事件。
了解基本元素有助于理解更多涉及的元素,例如object,embed和iframe,這些元素也會(huì)替換為內(nèi)容。
Flash通常使用object,embed和iframe嵌入網(wǎng)頁(yè)。
據(jù)我所知,object和embed元素的反應(yīng)相似,所以我會(huì)從此處快捷方式并說(shuō)出object。
在iframe和object元素中加載閃存之間存在明顯差異。
object元素與script元素非常相似,其中必須成功加載并執(zhí)行內(nèi)容才能繼續(xù)解析DOM。
iframe元素非常類似于img元素,其中內(nèi)容是異步加載的,但回調(diào)可用于確定加載何時(shí)完成(盡管我不是確定回調(diào)是否可用于跨域請(qǐng)求)。
加載Flash
上一節(jié)討論只是內(nèi)容加載的HTML方面。但是,閃光燈內(nèi)有許多細(xì)微差別會(huì)嚴(yán)重影響閃光電影的加載時(shí)間。
正如我之前所說(shuō),在繼續(xù)解析DOM之前,script元素必須完全加載和。在Flash文件中也發(fā)現(xiàn)了類似的效果(即使通過(guò)iframe包含在內(nèi))。必須先加載swf中嵌入的所有資源,然后才能swf釋放對(duì)頁(yè)面加載進(jìn)度的保留。
如果您已將視頻直接嵌入到時(shí)間軸中,則必須先加載整個(gè)視頻,然后才能將閃存視為已完成并初始執(zhí)行。
相反,如果您選擇使用異步回調(diào)來(lái)開(kāi)始加載恰好是視頻的外部資源,并使用異步加載器加載視頻,則不必等待視頻完成在加載頁(yè)面的其余部分之前加載;在閃存中,您仍然需要等待視頻完成加載才能開(kāi)始播放視頻。
或者,閃存中有許多方法可以流式傳輸視頻,或逐步從服務(wù)器加載視頻,這樣可以在不完成加載的情況下播放視頻。 我對(duì)flash特定方面的經(jīng)驗(yàn)很少,所以我不會(huì)解釋如何完成。
使用像swfobject這樣的庫(kù)可以異步加載所需的swf,以便閃存加載是非阻塞的。
TL; DR:
可能會(huì)逐步加載Flash文件,具體取決于您構(gòu)建HTML的方式以及swf中正在運(yùn)行的代碼。
總結(jié)
以上是生活随笔為你收集整理的flash调用swf文件服务器,浏览器如何加载Flash文件? (SWF)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle根据null排序,oracl
- 下一篇: 2017年html5行业报告,云适配发布