1 миллион элементов ссылки на одной странице?

это станет "отстающим", если я выберу 1 миллион элементов ссылки и помещу его в DOM.

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

элементы ссылки будут похожи:

 <a><img src.../ ></a>

это будет плохая идея иметь 1 миллион элементов ссылки на этой полосе прокрутки. причина я хочу, чтобы все ссылки (добавленный пользователями) были показаны. каковы другие возможности?

и кто-либо знает подобные плагины анимации?

спасибо!

5
задан ajsie 7 February 2010 в 14:37
поделиться

9 ответов

Для этого структура данных должна содержать два стека. Следует функционировать нормально; другой содержит только последний наблюдаемый минимальный элемент. При нажатии элемента, если он меньше/равен верху второй стопки (или стопка пуста), также нажмите его на вторую стопку. При выскакивании элемента, если он равен верху второго стека, также выкройте второй стек.

Минимум в любое время - это верхняя часть второго стека.

-121--4631911-

Вы можете сделать это, поддерживая два стека

stack - делать обычные операции push и pop на этом стеке.

minStack - этот стек используется для получения значения min ele в стеке за O (1) раз. В любой момент верхний элемент этого стека будет минимальным из всех элементов в стеке.

push( item a) 
    // push the element on the stack.
    stack.push(a)   

    // find the min of the ele to be pushed and the ele on top of minStack.
    if(minStack.isEmpty()) 
        min = a
    else
        min = Min(a,minStack.top())

    // push the min ele on the minStack.
    minStack.push(min) 
end push


pop()
    // pop and discard
    minStack.pop() 

    // pop and return
    return stack.pop() 
end pop


findMin()
    return minStack.top()
end findMin

В приведенном выше решении каждый раз, когда элемент проталкивается на стеке, происходит соответствующий толчок на minStack . Таким образом, в любое время количество элементов в стеке и minStack совпадают. Мы можем немного оптимизировать его, проталкивая элемент на minStack , только если элемент меньше, то настоящее мин.

push( item a) 
    // push the element on the orginal stack.
    stack.push(a)   

    if(minStack.isEmpty())
            // if minStack is empty push.
            minStack.push(a) 
    // else push only if the element is less than or equal to the present min.
    else if(a <= minStack.top()) 
        minStack.push(a)
end push

pop()
    // pop from the stack
    ele = stack.top()     
    if(minStack.top() == ele)
            // pop only if the top element is ele.
        minStack.pop() 

    // return the popped element.
    return ele 
end pop
-121--4631910-

вопрос в том, что вы не сможете сделать это

я сделал одно стресс-тестирование на моем сайте, загрузив обычный текст таблицы 40k строк, одну строку 4 ячеек, каждая ячейка не более 5 слов...

IE потерпел крах, Firefox удалось выйти с 1G использование поршня... требуется вечность, чтобы прокрутить...

так что ваши 1M изображения миссия невозможна... слишком плохо

3
ответ дан 18 December 2019 в 05:36
поделиться

Да, размещение 1 миллиона элементов в элементе графического интерфейса:

  1. будет медленным
  2. нарушением рекомендаций по удобству использования.

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

  • пейджинг
  • сортировка
  • фильтрация
  • списки избранного
  • и т. Д. ...

Посмотрите, как работает Stack Например, работает список вопросов Overflow.

7
ответ дан 18 December 2019 в 05:36
поделиться

Да, GCC будет включать все файлы объектов. С помощью последнего компилятора (версия разработки 4.5.0) для этого можно использовать -flto (оптимизация времени ссылки).

-121--4268478-

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

Кроме того, вы не хотите загружать миллион изображений на страницу, что приведет к большим задержкам, и ваш сервер может не понравиться, если у вас есть несколько пользователей. (полоса пропускания одного пользователя может оказаться недостаточной для нагрузки на сервер, чтобы вызвать проблемы.)

-121--4541880-

только передача данных займет много времени. Вы это считали?

6
ответ дан 18 December 2019 в 05:36
поделиться

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

6
ответ дан 18 December 2019 в 05:36
поделиться

Не рекомендуется размещать 1 миллион ссылок внутри полосы прокрутки. Вы должны проверить, можете ли вы поместить гораздо меньшее количество ссылок внутри полосы прокрутки (скажем, 20) и загружать остальные по запросу, забыв о тех ссылках, которые стали невидимыми при прокрутке.

2
ответ дан 18 December 2019 в 05:36
поделиться

Можете ли вы представить, насколько ужасным был бы ваш пользовательский опыт, если бы вам пришлось вручную прокручивать более миллиона предметов? Знаете ли вы, насколько велика "1 000 000"?

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

1
ответ дан 18 December 2019 в 05:36
поделиться

О другой возможности: создать одну большую картинку и обработать событие клика, затем перевести координаты либо на клике, либо на сервере, отобразить их на один из миллионов возможных urls

.
1
ответ дан 18 December 2019 в 05:36
поделиться

Кто-нибудь, пожалуйста, подумает о детях пользователях!?

Серьезно, какой смысл давать пользователю список из 1 миллиона ссылок? Пользователю было бы сложно пролистать 100 ссылок. Вы хотите умножить это на 10000?

Вы упомянули сайт Apple ... где они используют это на своем сайте?

1
ответ дан 18 December 2019 в 05:36
поделиться

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

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

.
5
ответ дан 18 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: