Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Замена обновленных данных с другой страницы (https://javascript.ru/forum/css-html/54832-zamena-obnovlennykh-dannykh-s-drugojj-stranicy.html)

Splunchik 02.04.2015 17:05

Замена обновленных данных с другой страницы
 
На одну страницу вставил таблицу из другой страницы, но так как страница не перезагружается полностью при переходе по ссылкам на ней, данные в таблице становятся не актуальными, как сделать чтоб они нормально подружались?
Я сделал обновление каждые 5 секунд, но теперь не могу справиться с их обновлением, каждый раз догружается новая таблица...

myRes()
setInterval(myRes, 5 * 1000 );

function myRes() {
	$(document).ready(function() {
		$.get('http://mysite.ru', onAjaxSuccess);
		function onAjaxSuccess(data){
			$('table:eq(4)', data).prependTo('body');
		};
	});	
};


Не обязательно чтоб они обновлялись каждые 5 сек, даже лучше будет чтоб они обновлялись при других кликах на странице, я к сожалению так и не смог понять как это делается(((

ksa 03.04.2015 08:33

Цитата:

Сообщение от Splunchik
Не обязательно чтоб они обновлялись каждые 5 сек

Как вариант, раздели "опрос" и собственно "обновление"... Может там и обновлять-то нечего. :)

Splunchik 03.04.2015 09:10

Ну на самом деле при каком условии обновлять это второй вопрос)
Самое главное чего я не могу сделать это удалить предыдущую таблицу и на ее место вставить новую((
Может как нибудь можно присвоить ее переменной и подгружать уже из нее? просто на странице вообще нет ИД у элементов, и куча других таблиц(

ksa 03.04.2015 09:33

Цитата:

Сообщение от Splunchik
при каком условии обновлять это второй вопрос

Тут вроде все просто. Если есть что обновлять - обновляй.

ksa 03.04.2015 09:34

Цитата:

Сообщение от Splunchik
на странице вообще нет ИД у элементов

Используй особенности ДОМа... Например заменить i-тую таблицу...

Splunchik 03.04.2015 10:49

Цитата:

Сообщение от ksa (Сообщение 364767)
Тут вроде все просто. Если есть что обновлять - обновляй.

а как можно отслеживать есть что обновлять или нет? как сравнить две таблицы? (хотя с этим я примерно знаю что придумать)

Спасибо за советы)
Вроде придумал как делать) жаль только что в этом не будет участвовать то что я уже написал)

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

Splunchik 03.04.2015 10:58

а я сам могу присвоить ИД таблице которую получаю и вставляю на страницу?

ksa 03.04.2015 13:33

Цитата:

Сообщение от Splunchik
а как можно отслеживать есть что обновлять или нет? как сравнить две таблицы?

Как вариант...
Хранить некий "тиместамп" изменения таблицы... При запросе изменений указывать свой тиместамп, когда последний раз запрашивал данные... Если с прошлого раза изменения были - слать их + свежий тиместамп. Если нет изменений - просто свежий тиместамп...
На приеме, если получил данные - меняй. И всегда запоминай, присланный тиместамп. Потом его будешь использовать при запросе...

ksa 03.04.2015 13:34

Цитата:

Сообщение от Splunchik
а я сам могу присвоить ИД таблице которую получаю и вставляю на страницу?

Я не в курсе твоих доступов к разметке хтмл... Обычно разметку сразу делают удобной для работы с ней.

Splunchik 03.04.2015 14:18

Цитата:

Сообщение от ksa (Сообщение 364804)
Я не в курсе твоих доступов к разметке хтмл... Обычно разметку сразу делают удобной для работы с ней.

я делаю расширение для хрома, обе этих страницы не мои и доступа у меня к изменению их хтмл нет.

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

а насчет ИД я имел ввиду вставлять его когда получаю таблицу и вставляю ее на страницу, что то вроде:
$('table:eq(4)', data).attr('id','myres');

но это не работает, может потому что не возможно, а может я не правильно пишу. Ну вот и хотелось бы узнать возможно ли это в принцыпе в моем случае?


Часовой пояс GMT +3, время: 01:01.