Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2010, 10:43
Интересующийся
Отправить личное сообщение для Cepin Посмотреть профиль Найти все сообщения от Cepin
 
Регистрация: 07.03.2009
Сообщений: 21

Сравнение объектов
Собственно вопрос был озвучен в названии темы.
Я так полагая что штатные операторы сравнения == не будут правильно работать и нужно писать свою рекурсивною функцию для сравнения свойств объектов.

Может есть готовые решения или это можно сделать стандартными возможностями языка?
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2010, 10:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Нету стандартных средств, ни сравнения, ни копирования.
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2010, 10:53
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

А можно узнать, где вам это понадобилось?
Ответить с цитированием
  #4 (permalink)  
Старый 21.07.2010, 11:00
Интересующийся
Отправить личное сообщение для Cepin Посмотреть профиль Найти все сообщения от Cepin
 
Регистрация: 07.03.2009
Сообщений: 21

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

Я лично отталкивался от такой логики:
1) получаем дефолтный хеш настроек.
2) клонируем его в другой хеш (функцию клонирования уже отыскал в сети)
3) используем функцию обновления данных в хеше, если нужно.
4) в самом конце сравниваем начальный хеш с конечным ,если изменился, тогда передаю на сервер данные.

Весь смысл моего извращения, чтобы не дергать каждый раз запрос на сервер ,а отсылать его тогда, когда реально были изменены данные.

Вот. Хотелось бы услышать ваши мысли, вдруг моя логика хромает и есть варианты попроще.
Ответить с цитированием
  #5 (permalink)  
Старый 21.07.2010, 11:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Cepin
Если какие-то свойства изменились, то я передаю объект на сервер через ajax.
В какой момент?
Ответить с цитированием
  #6 (permalink)  
Старый 21.07.2010, 11:04
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Cepin, ну а если в массив, а там уже сравнивать, проверять каждое значение на совпадение или несовпадение?
Ответить с цитированием
  #7 (permalink)  
Старый 21.07.2010, 11:07
Интересующийся
Отправить личное сообщение для Cepin Посмотреть профиль Найти все сообщения от Cepin
 
Регистрация: 07.03.2009
Сообщений: 21

Я пишу userscript. И данные которые будут менятся, изначально мне недоступны, они выдаются сервером..но не каждый раз, а примерно через 40 минут или через день. Затем мне нужно хеш с настройками передать на сервер.
Ответить с цитированием
  #8 (permalink)  
Старый 21.07.2010, 11:10
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Но меняет-то их ваш код?
Ответить с цитированием
  #9 (permalink)  
Старый 21.07.2010, 11:21
Интересующийся
Отправить личное сообщение для Cepin Посмотреть профиль Найти все сообщения от Cepin
 
Регистрация: 07.03.2009
Сообщений: 21

Нет, мой код ничего не меняет. Он просто использует настройки и если есть необходимость, он их обновляет. Это все идет как внешнее дополнение. Поэтому я придерживаюсь позиции: если обновились данные, тогда их следует обновить. Вообщем по сути, писать свою функцию сравнения, верно?
Ответить с цитированием
  #10 (permalink)  
Старый 21.07.2010, 11:28
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы же их как-то сериализируете перед отправкой на сервер. Вот и сравнивайте строки, а не объекты.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая вставка объектов cathunter jQuery 2 09.12.2009 17:48
ie6,7,8 Невозможно соединится с сервером программирования объектов sshz Internet Explorer 0 19.11.2009 15:32
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28
ООП: как создавать наследника от встроенных объектов? Langalier Общие вопросы Javascript 17 02.02.2009 17:07
Как определить включен ли поддержака объектов ActoveX feodul Events/DOM/Window 5 02.06.2008 12:04