Safari 在回发时阻止动画,但 FileUpload 无法在 UpdatePanel 中使用 ASyncPostBackTigger

Safari Blocks Animations on Postback, But FileUpload Cannot Use ASyncPostBackTigger in UpdatePanel

我有点困惑。

我在 UpdatePanel 中有一个 FileUpload。由于 FileUpload 不能使用 ASnycPostBackTrigger 它必须使用 PostBackTrigger 来破坏 AJAX 的目的(我假设这是一个安全实现)。目前,当我的文件上传开始时,我会向用户展示一个正在加载的 gif,当页面回传时它会隐藏动画。

这适用于除 Safari 之外的所有浏览器。 Safari 在完整 postback/redirects 期间冻结所有动画以节省资源(这意味着我的 gif 将显示但不会动画)。我被卡住了,因为我不确定如何呈现加载动画,因为 FileUpload 不能使用部分回发行为。

有人知道如何在 Safari 中传输文件时渲染动画吗?

更新面板

<asp:UpdatePanel runat="server" ID="updatePanel">
    <ContentTemplate>
        <div class="wrapper">
            <asp:Panel runat="server" ID="masterPanel">                  
                <asp:FileUpload ID="fileUpload1" runat="server" AllowMultiple="true" /> 
                <asp:Button ID="btnUpload" Text="Submit" runat="server" UseSubmitBehavior="false" 
    OnClientClick="return submitFiles()" />               
            </asp:Panel>
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:PostBackTrigger ControlID="btnUpload"  />
    </Triggers>
</asp:UpdatePanel>
   

进度面板(包含加载动画

<asp:UpdateProgress ID="loadingProgess" AssociatedUpdatePanelID="updatePanel" runat="server">
       <ProgressTemplate>
           <asp:Panel runat="server" id="loading" >
              <div>
                 <asp:Image src="loader.gif" runat="server" ID="loadingImage" />
              </div>
         </asp:Panel>
     </ProgressTemplate>      
</asp:UpdateProgress>

剧本

<script type="text/javascript">    
        function UploadFile(fileUpload) {
            if (fileUpload.value != '') {
                //Display animation
                document.getElementById('<% Response.Write(loadingProgess.ClientID); %>').style.display = "inline"; 
                //Posts files    
                submitFiles();          
            }
        }
</script>

您是否尝试过 CSS 动画而不是 GIF? Check this.