Избегайте обратной записи при выполнении функции таймера - PullRequest
4 голосов
/ 30 января 2012

Мне нужно обновить изображения на моем сайте, не отправляя пост обратно на страницу. Итак, я загрузил изображения в ротатор рекламы, чтобы переключаться между изображениями.

Я также использовал функцию отметки времени для обновления изображений в рекламном ротаторе.

Но при обновлении функции отметки времени вся страница обновляется, так что все функции, которые я объявил на странице, перезагружаются.

Мне нужно, чтобы только изображения в рекламе изображений обновляли не всю страницу.

Мне нужно избегать полного обновления страницы. Пожалуйста, помогите мне.

$(document).ready(function() {
    setInterval(function() {
        $('#<% = addrotat.ClientID %>').load(location.href + ' #<% = addrotat.ClientID %> ', '' + Math.random() + '');
    }, 5000);
});

Ответы [ 2 ]

4 голосов
/ 30 января 2012

Вам необходимо использовать ajax, используя панели обновления с соответствующими триггерами, панель обновления. Позволяет частично отображать разделы страницы без обратной передачи.

<asp:UpdatePanel ID="up1" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="yourControl" EventName="yourControlEvent" />
        </Triggers>
        <ContentTemplate> your  content goes here       </ContentTemplate>

    </asp:UpdatePanel>    

Вы можете проверить эти ссылки

панель обновления, с триггерами ,

документация панели обновления

пример для adrotator без обновления страницы

2 голосов
/ 08 июля 2014
//auto refresh clock without postback

<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
            <script type="text/vbscript" runat ="server" >
                Private Sub fun()
                    label.Text = Now.ToString
                End Sub
            </script>
        </asp:ScriptManager>
        <div>
            <asp:UpdatePanel ID="up1" runat="server">
                <ContentTemplate ></ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="tim" EventName="Tick" />
                </Triggers>
                <ContentTemplate>  
                    <asp:Timer ID="tim" Interval ="1000" Enabled ="true " OnTick ="fun" runat ="server" ></asp:Timer>
                    <asp:Label ID="label" runat ="server" Text="DD/MM/YY"></asp:Label>     
                </ContentTemplate>
            </asp:UpdatePanel>  
        </div>
    </form>
</body>
...