Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2016, 14:26
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 20.02.2010
Сообщений: 213

Удалить все элементы с одинаковым значением атрибута тега
Есть к примеру список <ul><li>...
у каждого <li> есть атрибут data-name
Так вот они могут и будут повторятся, мне нужно удалять дубликаты при этом оставлять один видимым.
Пробовал через css :not(:first-child) {display: none;
Но Если элемент не повторяется, то он тоже скрывается.
А мне нужно отобразить все просто дубликаты отсеять.
Как это сделать на jQuery ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2016, 14:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А дубликаты откуда берутся, надо полагать сервер их поставляет, а сервер откуда их берет?
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2016, 14:46
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,750

Как верно сказано выше, дубли должен отсеивать ещё сервер.

А так:
var list = Object.create(null);
$( 'li[data-name]' ).each(function(){
  var $li = $(this),
      name = $li.data('name');
  if(name in list) $li.css('display', 'none');
  else list[name] = true;
});
__________________
29375, 35
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2016, 14:56
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

Сообщение от Aetae
Как верно сказано выше
а теперь представь себе такую картину. Допустим, операция занимает 1 секунду. За этой страницей обращается одновременно миллион клиентов.
В одном случае, у тебя процесс распараллелится по миллиону компов, а в другом -- клиенты будут ждать до посинения, в худшем случае, секунда*миллион времени.

Слегка утрировал, но суть та же.
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2016, 15:00
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,750

fuckingquest, передача лишнего трафика и соответственно занятое соединение потратит больше времени чем фильтрация на сервере, тем более если отсеивать лишнее правильным запросом к бд.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2016, 15:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от fuckingquest
В одном случае, у тебя процесс распараллелится по миллиону компов, а в другом -- клиенты будут ждать до посинения
Чего ждать? На каждого клиента свой процесс на сервере, а сколько он работает, это уже ваша забота, и если параметры списка определяют данные из базы, то кто же вас заставляет брать все, а не уникальные значения? Тоже самое если дубликаты не данные из базы, отсеять их, это не добавит очень много дополнительного времени, конечно если код сервера не корявый.
А слать мусор клиенту по принципу "да хрен с ним, процессоры сейчас мощные, памяти хватит, пусть карячится", это что подход? Ну так по такому принципу с сервера можно столько плюнуть на клиента, что завалится уже клиент.
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2016, 15:28
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

laimas,
Сообщение от laimas
На каждого клиента свой процесс на сервере
то что оратор выше сказал, про траф, еще можно худо бедно всерьез воспринять, если забыть о скорости современных каналов, но то что Вы плетете -- это просто натуральная ахинея. Вы что же думаете, процессы бесплатны что-ли? Тем более в Вашем этом похапе, блеать, что они ресурс процессора не отжирают, или что тут Вы пытаетесь сказать я не понял?
При последовательной обработке первый будет ждать мало, последний много, с тредами все будут ждать среднебольничное, грубо говоря.

Последний раз редактировалось fuckingquest, 04.11.2016 в 15:32.
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2016, 15:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от fuckingquest
Тем более в Вашем этом похапе, блеать, что они ресурс процессора не отжирают, или что тут Вы пытаетесь сказать я не понял?
Любой процесс любого ПО это ресурсы, об этом можно и не говорить. Ждать кого и что значит последовательно - первый жрет мало, второй больше? Не кажется что вы несете ахинею или я не понял теперь о чем вы?

А работа на клиенте, это тоже ресурсы и о них тоже нужно думать.
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2016, 15:46
Аспирант
Отправить личное сообщение для fuckingquest Посмотреть профиль Найти все сообщения от fuckingquest
 
Регистрация: 28.10.2016
Сообщений: 70

Сообщение от laimas
или я не понял теперь о чем вы?
скорей: не мог изначально
Ответить с цитированием
  #10 (permalink)  
Старый 04.11.2016, 16:25
Аватар для karakym
Профессор
Отправить личное сообщение для karakym Посмотреть профиль Найти все сообщения от karakym
 
Регистрация: 20.02.2010
Сообщений: 213

Сообщение от Aetae Посмотреть сообщение
Как верно сказано выше, дубли должен отсеивать ещё сервер.

А так:
var list = Object.create(null);
$( 'li[data-name]' ).each(function(){
  var $li = $(this),
      name = $li.data('name');
  if(name in list) $li.css('display', 'none');
  else list[name] = true;
});
Спасибо, помогло. Понимаю что сервер выполняет работу зря когда создает дубли и не обрабатывает их, но мне крайне важно, что бы они все были и просто скрыть дубли.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как удалить все элементы в Div e ? Arfey Общие вопросы Javascript 14 10.06.2010 10:50
Не могу выбрать и удалить клонируемые элементы AlexPrm jQuery 6 30.05.2010 14:58
Выбрать все элементы кроме $(this) shustrikk jQuery 2 13.03.2010 13:17
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 13:37
Как удалить все пустые элементы UL smashercosmo Events/DOM/Window 13 25.02.2009 08:03