瀏覽器如何加載Flash文件?它們是逐步加載的,還是瀏覽器在顯示之前一直等到整個Flash文件被加載?瀏覽器如何加載Flash文件? (swf)
原因是我有一個非常高質量的剪輯,只有幾秒鐘,但它超過了4 MB。
用戶在觀看前是否必須等待全部4 MB已加載?或者當用戶觀看時加載?
我沒有做任何事情,我只是將.flv導入到Flash中,並以.swf格式導出。
先進的謝謝
瀏覽器如何加載Flash文件?它們是逐步加載的,還是瀏覽器在顯示之前一直等到整個Flash文件被加載?瀏覽器如何加載Flash文件? (swf)
原因是我有一個非常高質量的剪輯,只有幾秒鐘,但它超過了4 MB。
用戶在觀看前是否必須等待全部4 MB已加載?或者當用戶觀看時加載?
我沒有做任何事情,我只是將.flv導入到Flash中,並以.swf格式導出。
先進的謝謝
加載Flash文件有很多部分,更一般地說,是一個HTML頁面。
我打算從HTML頁面的頂部開始,我敦促其他人糾正我可能犯的錯誤。
當接收到一個HTML頁中,瀏覽器將其解析爲文檔對象模型(DOM),以便它具有的每一個元素的方案表示。瀏覽器迭代DOM樹中的每個節點並根據需要填充它。
對於大多數節點,這只是簡單地創建一個新的DOM元素,如div
,p
或a
;但是有些內容需要加載或更換。
表單元素(input
,select
,button
,textarea
)被這些表單字段的瀏覽器特定表示替換。
link
用作樣式表的元素是異步加載的。隨着外部資源的加載,DOM繼續解析頁面。
script
另一方面,元素被同步加載。在腳本完成加載和執行之前,DOM不能繼續解析該樹,除非加載失敗或執行出錯,否則將例外。
img
元素是異步加載的,但允許onload
回調來確定它們何時完成加載。 DOM無法觸發窗口的onload
事件,直到所有img
元素都完成加載(或失敗)。
瞭解基本元素有助於理解更多涉及的元素,如object
,embed
和iframe
,它們也被替換的內容。
Flash通常使用object
,embed
和iframe
嵌入在網頁上。
據我所知,object
和embed
元素反應同樣如此,我將快捷方式,並從這裏開始了說object
。
iframe
和object
元素之間的加載閃存有明顯的區別。
object
元素與script
元素非常相似,其中內容必須在繼續解析DOM之前成功加載並執行。
的iframe
元素是非常相似的,其中的內容異步加載的img
元素,但回調可以被用來確定當加載完成(雖然我不知道的回調是否可用於交 - 域名請求)。
上一節討論只是內容加載的HTML側。但是,閃光燈內存在許多細微差別,可能會嚴重影響閃光燈電影的加載時間。
如前所述,script
元素必須完全加載和才能繼續解析DOM。在Flash文件中可以找到類似的效果(即使通過iframe
進行了包含)。嵌入在swf
內的所有資源必須在swf
可以釋放對頁面加載進度的保留之前加載。
如果你嵌入視頻直接到時間線中,整個視頻必須加載閃存前,可以考慮做與其初始執行。
如果您選擇使用異步回調開始加載恰好是視頻的外部資源,並使用異步加載器加載視頻,則無需等待視頻爲在可以加載頁面的其餘部分之前完成加載;在閃光燈內,在開始播放視頻之前,您仍然需要等待視頻完成加載。
或者,Flash中有很多方法可以用於流式傳輸視頻,也可以逐漸從服務器加載視頻,這將使視頻在未完成加載的情況下播放。 我對閃光的特定方面的經驗是最小的,所以我不會解釋如何它完成。
使用像swfobject
這樣的庫,可以異步加載期望的swf
,以便閃存加載無阻塞。
Flash文件可能會根據您如何構建HTML以及在swf
中運行什麼代碼而逐步加載。
你可能想看看swfobject
它會首先加載整個電影。因此,讓視頻成爲電影在運行時加載的外部文件。
SWF文件被加載逐漸(因此裝載機槓「加載了50%」的消息和這樣的)。
歷史上,Flash文件基於幀,並且如果主時間軸具有多個幀,那麼一旦加載完整文件,它們將在載入整個文件之前按順序加載和顯示。但是,現在大多數Flash內容不是以這種方式構建的,並且比按順序顯示的一系列幀更復雜。除了基本幀模式外,視頻播放還增加了複雜性,包括視頻編解碼器,音頻同步等。
所以,這個問題的答案「難道他們逐漸加載,或做瀏覽器等待,直到整個Flash文件顯示前裝?」是他們逐步加載並顯示之前整個SWF文件被加載。但是,這將如何影響用戶體驗視頻的方式,如果沒有看到它或者如何構建,很難說清楚。
作爲新用戶的問題做得很好。 – zzzzBov