обновить содержимое диалогового окна jquery ui - PullRequest
1 голос
/ 18 сентября 2010

мне удалось получить этот скрипт.Это обновляет div диалогового окна:

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 секунды обновлялось быстрее, могло ли случиться что-то плохое?

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


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

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

1 Ответ

0 голосов
/ 18 сентября 2010

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

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

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

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

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

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

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

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