Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 23.04.2012, 11:45
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от trikadin
Маэстро, на клиенте, конечно...
Спасибо за тесты. Я тоже такие делал, в том числе задавал и 100 тыс. строк и 1000 строк на 1000 столбцов. К сожалению, на больших массивах данных вычисления на сервере выигрывают перед вычислениями на клиенте, т.к. на сервере всё считает SQL-запрос в БД на приличном сервере. И вычисления занимают 1 сек. по сравнению с 10 сек. на клиенте (в некоторых задачах). Поэтому я всё еще думаю...
P.S. 100 тыс. строк - не перебор. В товарном справочнике предприятия более 140 тыс. наименований.
Ответить с цитированием
  #12 (permalink)  
Старый 23.04.2012, 12:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,503

По поводу вычислений - именно на клиенте. Любые вычисления не требующие серьёзной рекурсии выполняются очень быстро. Но надо понимать что именно вычисления, ни в коем случае нельзя дёргать документ до того как всё будет посчитано. Все вычисляемые цифры до окончательного вывода должны содержаться в js и тогда всё булет быстро.
Сообщение от Маэстро Посмотреть сообщение
Я тоже так раньше думал. Но это жить как я говорю "без любви к людям". Учусь у Гугла. Знаете сколько серверов у Гугла? - Говорят больше миллиона. Если бы Гугл сказал: мы сделали классный поисковый механизм, а то что оно медленно отображает информацию на вашем компьютере - это ваши проблемы! Покупайте новый компьютер! Если бы Гугл сказал, что медленный интернет - это ваши проблемы! и т.д.... - мы бы Гугл не уважали. А мы уважаем. За что? -За то, что они думают в первую очередь о пользователях.
P.S. Гуглу легче. У него милли...милли...миллиарды $
А вы не заметили что последнее время гугл, с*ка, тормозит?
Навесили овер9000 свистоперделок. Приходится на нём js отключенным держать, чтоб по-человечески работал. =(
__________________
29375, 35
Ответить с цитированием
  #13 (permalink)  
Старый 23.04.2012, 13:01
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Aetae Посмотреть сообщение
По поводу вычислений - именно на клиенте. Любые вычисления не требующие серьёзной рекурсии выполняются очень быстро. Но надо понимать что именно вычисления, ни в коем случае нельзя дёргать документ до того как всё будет посчитано. Все вычисляемые цифры до окончательного вывода должны содержаться в js и тогда всё булет быстро.
Не любые. И даже без рекурсии. Есть категория вычислений, которые точно надо считать на сервере, либо разделять на часть тут, часть там.
Пример.
Менеджер хочет знать, на какую сумму товара хранится на складе по разделам:
-телевизоры
-стиральные машинки
-холодильники
-CD-плееры
- ... итого 30 разделов.
В каждом разделе грубо говоря по 1000 наименований.
Как будем считать? Сразу думаю, что глупо гнать на клиента 30х1000=30 тыс. строк, чтобы посчитать в JS. В данном случае надо на сервере с помощью SQL-запроса посчитать суммы товаров по разделам, а на клиента отправить только 30 строк, на котором уже можно получить их общую сумму.
Поэтому вопрос, поднятый в моей теме я трансформирую уже несколько по-другому: Каков строгий критерий разделения такого рода задач на задачи, решаемые на клиенте и на задачи, решаемые на сервере?
Ответить с цитированием
  #14 (permalink)  
Старый 23.04.2012, 13:11
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,503

>Каков строгий критерий
Логика.

Какой-то выверенной годами истины в данном вопросе нет.(разве что в каких-нить новых забугорных книжках)
__________________
29375, 35
Ответить с цитированием
  #15 (permalink)  
Старый 23.04.2012, 14:10
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от trikadin
dmitriymar, в js есть функция toFixed, с её помощью можно вполне сделать вычисления удовлетворяюще точными.
далеко не всегда
Ответить с цитированием
  #16 (permalink)  
Старый 23.04.2012, 15:21
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от trikadin
var log = document.createDocumentFragment();
А Илья Кантор говорит, что "Фрагмент документа ничего не оптимизирует сам по себе, он не быстрее обычного документа"
http://javascript.ru/optimize/documentfragment-0
Ответить с цитированием
  #17 (permalink)  
Старый 23.04.2012, 21:07
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Маэстро, сравнивать надо не "1) Сначала всё в строку" и "2) Сначала всё в documentFragment", а с первым примером, 1) и 2) это разные варианты реализации того, как можно добавить в документ элементы одним действием.
Ответить с цитированием
  #18 (permalink)  
Старый 23.04.2012, 21:14
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Octane Посмотреть сообщение
Маэстро, сравнивать надо не "1) Сначала всё в строку" и "2) Сначала всё в documentFragment", а с первым примером, 1) и 2) это разные варианты реализации того, как можно добавить в документ элементы одним действием.
Та яж не придираюсь! Яж шучу... Просто было хорошее настроение и процитировал Илью Кантора, потому что вспомнил армейский анекдот:
-Товарищ старшина, а крокодилы летают?
-Вы что, рядовой, конечно же нет!
-Да? А товарищ полковник, сказал, что летают!
-Даа?? Аа... ну да... летают... только низенько низенько...
Ответить с цитированием
  #19 (permalink)  
Старый 23.04.2012, 22:42
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вот во всей этой проблеме я искренне немогу понять, зачем вы таблицу из 5000 строк единовременно клиенту отдаёте. (пост 10)
Что пейджинг c фильтрами уже не моден ? Теперь круто получить HTML'ку этак высотой в 80 экранов ?

Если отдавать информацию небольшими блоками, то и проблема с тем где производить расчёты станет неактуальной, так как и на сервере и на клиенте они будут происходить мгновенно. Ну для полного кайфа вынесете расчёты на клиент, на любой машине 100 строк не окажут заметного влияния на производительность.
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 23.04.2012 в 22:47.
Ответить с цитированием
  #20 (permalink)  
Старый 23.04.2012, 23:40
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от dmitriymar
далеко не всегда
Можно пример?

DjDiablo, +1. Комп стандартной мощности верстать таблицу > 10000 ячеек будет долго.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 23.04.2012 в 23:43.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06