2010-09-17 4 views
1

Мне удалось получить этот скрипт. Это освежает DIV диалогового окна:обновить содержимое диалогового окна jquery ui

function getRandom() { 
$("#category_dialog").load("<?php echo $category; ?>", '', callback); 

}

function callback() { 
    $("#category_dialog").show("fast"); 
    setTimeout("getRandom();", 10000); 
} 

$(document).ready(getRandom); 

все работает нормально. div обновляется каждые 10 секунд. Но у меня есть некоторые сомнения по поводу этого метода. 1. С тех пор, как обновляется каждые 10 секунд, будет замедляться скорость борссера или что-то в этом роде? 2. Я бы хотел, чтобы он обновлялся быстрее каждые 3 секунды, может ли что-нибудь плохое произойти?

Я бы предпочел как-то создать ссылку, которая обновит содержимое onclick, но я не нашел хороших примеров. Может кто-то помочь мне с этим. Итак, я хочу, чтобы category_dialog div загружался с использованием load.(), Но с помощью onclick call - и отображал то, что нового. Спасибо!


С Kissaki помощью я сумел сделать простую функцию, которая сделает меня ссылку обновления :) вот пример:

$(function() { 
    $("#refresh").click(function() { 
    $("#category_dialog").load("<?php echo $category; ?>") 
    }) 
}) 

ответ

0

Если вы хотите уменьшить интервал обновления вы должны только рассмотрите производительность: пропускную способность, нагрузку на сервер и нагрузку на клиента.

Нагрузка клиента не должна быть проблемой, если это не бесполезное обновление в фоновом режиме. Вы могли бы, например, обновить только в том случае, если в окне сосредоточено внимание на том, чтобы уменьшить бесполезность, никогда не видели данные.

Поскольку div отображается один раз и вы вызываете функцию show каждый раз, когда вы обновляете (пока он показывается, так как он никогда не был скрыт), вы можете удалить этот вызов. Я не совсем уверен, как это реализовано jQuery и сколько выгоды от производительности вы можете получить здесь, но это бесполезный вызов после первого вызова в любом случае.

Возможно, вы также можете использовать это в функции обратного вызова, так как вы используете функцию загрузки. Вы должны были бы проверить, хотя.

Кроме того, вам не нужно передавать пустую строку в функцию загрузки. Этот параметр данных является необязательным.

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

Для OnClick JQuery предоставляет функцию http://api.jquery.com/click/

$("#category_dialog").click(function(event){ 
    //refresh code here 
}); 
+0

нажмите() Я думаю, я что-то отсутствует. Я установил код обновления в $ ("# category_dialog"). click (function (event) { // обновить код здесь }); , но он не обновляется, если я нажимаю - я также изменил id на refresh_content и использовал его как ссылку, поэтому, если я нажму на него, все будет обновляться, но все равно не сработает. – ciprian

+0

смотрел здесь http: //api.jquery. com/click /, и мне удалось создать ссылку обновления. я отредактирую свой вопрос с помощью решения. Спасибо за ваше время - я действительно ценю ваш хороший ответ! – ciprian

Смежные вопросы