![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
я хотел перебирая массив, посмотреть если ли такое значение массив в ключе хэша... (значение хеша равняется 1) т.е. {'34' => 1, '35' =>1}
msg.array_send_upd. - это хэш а как мне посмотреть есть ли у него ключ $(".send:eq("+i+")").html() (соответственно и значение) т.е. я запутался, как тут написать if ( $(".send:eq("+i+")").html() == msg.array_send_upd.(i) ) { чтобы это сравнить ?? |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
я сделал отладку в скрипте и отправил как строку, т.е. там 95% вероятности что идет именно хэш $VAR1 = { '317' => 1 }; (это то, что пришло в js, т.е. хєш) т.е. 1) я перебираю таблицу for (var i = 0; i < len; i++) { 2) ищу id по очереди (id в MySQL таблицу на самом деле) 3) я хочу сравнить это id есть ли оно в хэше (в ключе хэша...) как нибудь, пытался по разному msg.array_send_upd[$(".id:eq("+i+")").html()] == 1 4) если совпадает ключ с id, то отмечаем что отчет пришел $(".send:eq("+i+")").html('1'); и $(".send_me:eq("+i+")").html('блп-бла-пришел'); может я структуру не так сделал, как это можно сделать? т.е. проблема именно тут: msg.array_send_upd[$(".id:eq("+i+")").html()] == 1 ЗЫ я хотел сделать отчет в чате, чтобы было видно когда пользователь принял сообщение, а когда нет, вместо личных сообщений... |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
gcc, прикольно...
сначала в чат сам напихиваешь какой-то текст нумерованый, потом проверяешь есть ли он? навскидку, насколько я понял задачу, можно предложить пару вариантов: -- для каждого сообщения, номер которого может быть важно проверить, ставишь ID равный 'messsend_XXX', где XXX - тот самый критерий поиска (число?) простая проверка на document.getElementById даст сразу простой и понятный ответ на нужный вопрос -- сразу хранишь весь массив принятых посланных номеров сообщений в Javascript'овских объектах. На старте предаешь вместе с сформированным уже текстом (если он, конечно, формируется сервером) и список сообщений. А все динамически добавляемые-удаляемые индексы сообщений уже сам можешь догадаться куда пихать Итого - просто проверить есть ли такой индекс в массиве (поле в объекте) и дело в шляпе... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ksnk, я примено так и делаю...
мое действие в этом топике финальное... все и с начало: я отправил сообщение, и потом я должен получить отчет что оно дошло... 1) я пишу сообщение в форму, отправляю его на сервер и вставляю себе, отмечаю его как не принятое пользователем с которым я общаюсь... 2) отправляется запрос через 2-3 сек. который смотретит новые сообщение 2, а) этот запрос когда отправляется берет с таблицы document.getElementById 0-15 значений которые помечен как не принятые моим собеседником.. 2, б) в скрипте не сервер я смотрю новые сообщение и смотрю те сообщениея мои которые пользователь принял 2, в) я отправляю эти данные обратно отбратно, вставляю новые сообщение которые есть И отмечаю те сообщения которые были приняты в msg.array_send_upd[$(".id:eq("+i+")").html()] == 1 с теми ид которые в таблице... все работает! НО я не знал что будет такой геморой с сравнением ключа хэша msg.array_send_upd[$(".id:eq("+i+")").html()] == 1 ну у меня храниться по идее как вы сказали в массиве, тоже, просто я бегу его с таблицы document.getElementById и перебираю for как массив вопрос остается в любом случае? как сравнить эти 2 структуры, массивы и хэши? это не реализуемо...? Добавлено через 4 минуты и 10 секунд gcc, я еще раз прочитал ваше сообщение, не много понял... ну допустим я поставлю в msg.array_send_upd ключ 'messsend_XXX' как тут тогда записать? так?
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
gcc, У меня сложилось впечатление что общение идет между двумя клиентскими машинами со своими броузерами. а сервер используется просто как транспорт?
Как-то слишком сложно, не логичнее ли сервер заставить и хранить сообщения и следить за корректно принятыми? сторона А отправляет сообщение. На сервере оно помечается как непрочтенное. Сторона В запрашивает список сообщений и при отправке списка все отправленные помечаются как прочтенные. при следующем обновлении списка на стороне А все непрочтенные сообщения сбрасываю свой статус в прочтенные... Правильно ли я понял, что сейчас для того, чтобы пометить какое-то сообщение как прочтенное, заводится отдельная структура в ДОМ'е (невидимая?) и в неё запихиваются странные html'ины? Потом по этим странным html'инам производится пробежка посредством jquery-селекторов? Можно ведь просто завести массив и хранить индексы сообщений в нем. Если индексы сообщений не очень-то числовые - можно завести объект и отмечать в нем поля. Прверять поля на сущенствование typeof(send[XXX])!=undefined, удалять поля - методом delete... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ну смотрите я отправил, например, 2-5 сообщения пользователю, а у него связь разорвалось на 5 мин...
у меня это видно, у меня если сообщение стоят как не принятые... как толкьо он появляется, он принимает из скрипта на сервер от меня и они нумеруюуться в MySQL как принятые, мой массив отправляется на сервер и смотрит принятые те сообщение, если принятые, возвращает мне... ну я делаю в скрипте, то что спрашиваю... : msg.array_send_upd[$(".id:eq("+i+")").html()] == 1 как тогда сравнить 2 массива, 1 - одном будут id которые принялись 2 - второй массив это то, что стоит у меня в таблице, и если ИД не принялось то поменять, т.е. в любом случае нужно сравнить 2 массива (ну или хэша)?? Добавлено @ 23:58
да Добавлено @ 00:00
сори, не понимаю, ну а как тут сделать? у меня массив из таблицы, ну а какая тут разница? я получаю id с таблицы... $(".id:eq("+i+")").html() ну если у меня будет так big_array[id] что это даст?? Это сообщение отредактировал(а) gcc - 20.4.2010, 00:03 |
||||
|
|||||
| gcc |
|
||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
ksnk, оно все таки работает так:
msg.array_send_upd - это хэш видимо я где-то что-то запутал! если интересно, то вот полнолстью:
|
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |