Войти
ПрограммированиеФорумВеб

Комфортный переход с С++ на javascript (4 стр)

Страницы: 1 2 3 4 5 Следующая »
#45
13:20, 11 июня 2014

Mephistopheles
Зависимость от jQuery утруждает :(

А так, я юзал примерно 3.5 года назад вот этот загрузчик:

+ Показать

И использование:

+ Показать

Сейчас я бы сделал немного иначе, с использованием chaining'а, нормальных event'ов, и попроще сам загрузчик без ручной подставки даты (при загрузки скрипта чтобы обойти кешинг, это криворукость на стороне сервера).


#46
13:34, 11 июня 2014

MoKa
> Зависимость от jQuery утруждает :(
джекверя это уже считай стандартная либа, ее все юзают.
Ну даже если так не хочется ее юзать то можно свой деферед свелосипедить с интерфейсной совместимостью с джекверей.

MoKa
> А так, я юзал примерно 3.5 года назад вот этот загрузчик:
без async оно будет браузер вешать на момент загрузки, что не хорошо.

вместо

this.scripts.requires.indexOf(this.scripts[d].name) != -1

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

#47
15:48, 11 июня 2014

Mephistopheles
> джекверя это уже считай стандартная либа, ее все юзают.
Далеко не все. Я лично в своих проектах никогда не использую. Народ потом удивляется как Vanilla JS может быть простым и все грузится супер шустро.

Mephistopheles
> без async оно будет браузер вешать на момент загрузки, что не хорошо.
Не будет никаких подвисаний, загрузка происходит после onload, следственно нечего блокировать уже не будет.

Mephistopheles
> лучше карту использовать, а то можно с похожими именами не ту депенденси
> подцепить.
indexOf проверяет на === следственно, проблем тут тоже не будет.

Mephistopheles
> Да и управление зависимостями это не проблема загрузчика. Загрузчик должен
> загружать, а остальное это не его забота.
В данном случае, суть загрузчика именно в решении зависимостей.
requirejs выполняет также две роли, с отличием в том что каждый скрипт - сам себе босс.

Либо как ты предлагаешь решение зависимостей без загрузчика? :)

#48
16:48, 11 июня 2014

MoKa
> indexOf проверяет на === следственно, проблем тут тоже не будет.
да ты что:)
Изображение

MoKa
> Не будет никаких подвисаний, загрузка происходит после onload, следственно
> нечего блокировать уже не будет.
Просто не всегда после onload такой скрипт может загружаться)

MoKa
> В данном случае, суть загрузчика именно в решении зависимостей.
Загрузчик - загружает, зависимостями рулит менеджер зависимостей. Зачем инкапсуляцию нарушать и давать загрузчику знать о каких то зависимостях)

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

#49
17:07, 11 июня 2014

Mephistopheles
> да ты что:)
Ты только упустил одну деталь, я indexOf на массив применяю а не на строку... ;)
Будь внимательнее. Вот ссылочка на офф документацию, на случай если тебе нужны знания: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference… Array/indexOf

Mephistopheles
> Просто не всегда после onload такой скрипт может загружаться)
Это уже твоя логика в скрипте. Так что загружаться может всегда.

Mephistopheles
> Загрузчик - загружает, зависимостями рулит менеджер зависимостей. Зачем
> инкапсуляцию нарушать и давать загрузчику знать о каких то зависимостях)
У меня загрузчик грузит все одним ходом, одно за другим.
Если где-то зависимость не загрузилась, загрузка не продолжиться, и будет сообщено о ошибке загрузки.

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

Mephistopheles
> то потом захочется о прогресе уведомлять внешний обьект
Ага, 'step' callback в моем решении.

Mephistopheles
> потом захочется еще чегото прикрутить типа приоритета и в итоге в загрузчике
> будет треш, угар и содомия
Зачем прикручивать, лол. В моем загрузчике это уже есть. Все проще чем тебе кажется. Приоритет зависит от указанных зависимостей (ты код мой читал?), следственно будет все грузится по очереди с учетом зависимости. Указанный список require является источником решения приоритетов. Приоритеты - слишком low-level элемент, чтобы кодер их сам кодил, все что разработчик хочет - указать что от чего зависит, а загрузчик должен сам все загрузить уважая зависимости в нужной последовательности.

Mephistopheles
> Js и так не самый лучший в поддержке язык, а ты предлагаеш еще и пару
> антипатернов применить в нем:)
Ты это requirejs, promises, jquery и другим парням расскажи сперва.

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

#50
17:38, 11 июня 2014

MoKa
> Ты только упустил одну деталь, я indexOf на массив применяю а не на строку...
Так я про это и говорю что js это write only язык:) человек незнакомый с кодом сходу не может вьехать в код) Да и такой код не кросбраузерный, в 8 осле оно не пашет.

MoKa
> Ага, 'step' callback в моем решении.
Очевидное именование)

MoKa
> Ты это requirejs, promises, jquery и другим парням расскажи сперва.
Они фанаты своего дела и то джекверя раза три переписывалась почти целиком тк они утопали в куче говнокода:)

#51
17:46, 11 июня 2014

Mephistopheles
> Так я про это и говорю что js это write only язык:) человек незнакомый с кодом
> сходу не может вьехать в код)
А при чем тут те кто не кодят, они пусть и не лезут в код. Это как я буду жаловаться на то что не понимаю Lisp, не те же кто пишут на нем лохи, а я.

Mephistopheles
> Да и такой код не кросбраузерный, в 8 осле оно не пашет.
Осел 8 идет лесом, мне он давно не сдался, также как и 9ый.

Mephistopheles
> Очевидное именование)
Да хоть 'onprogress' какая разница? Писал 3.5 года назад, за 15 минут для себя, сам же и пользуюсь.

Mephistopheles
> Они фанаты своего дела и то джекверя раза три переписывалась почти целиком тк
> они утопали в куче говнокода:)
И что значит им можно писать что хочешь?

Ладно Mephistopheles, я не много устал болтать "не о чем". Закончим этот оффтоп.

#52
16:49, 14 июня 2014

Расскажите, пожалуйста, как быть в такой ситуации.

Храню данные уровня и настройки в файле .json, который загружается перед стартом игры. Если я что-то меняю в этом файле, в браузере увидеть изменения не получается, очевидно, что используется кеш, и заново файл .json не загружается. Очень не удобно во время разработки. Как это побороть? Чтобы браузер загружал .json каждый раз как я жму f5?

#53
20:50, 14 июня 2014

AloneR
передавай ссылку с уникальным GET-параметром, например:

var url = 'http://coolgame.com/level.json?' + new Date().getTime();

С точки зрения браузера такие URL — разные и версия из кэша браться не будет. Ещё как вариант, настроить сервер так, чтобы он отдавал HTTP-заголовки, запрещающие кэширование.

#54
21:40, 14 июня 2014

$tatic
> передавай ссылку с уникальным GET-параметром, например:
Это очень плохой вариант, т.к. не решает проблемы не правильных заголовков кеша, а также полностью лишает броузер кеша.
Чтобы решить задачу с кешингом, то нужно посылать корректный заголовок с сервера. Зависит от твоего сервера (Apache, nginx, etc...).

#55
16:16, 15 июня 2014

$tatic
true
В jQuery, например, есть параметр cache=false, который примерно то же самое делает.

MoKa
> а также полностью лишает броузер кеша
В случае веб-приложений кеш далеко не всегда нужен.

#56
1:20, 16 июня 2014

NightmareZ
> В случае веб-приложений кеш далеко не всегда нужен.
Ну так и отлично, делаем кеш с проверкой на Modified At и все. Никакой парилки - данные обновились по ссылке, броузер скачает, не обновились - заюзает кеш.
Не нужно придумывать никакие front-end решение для обхода кеша, ни отключать кеш полностью на сервере.

Я разрабатывал кучу всяких веб приложений, API, Auth Server, Angular *shit*, etc. и везде решение очень простое - правильные заголовки с сервера.
Например в nginx это:

expires modified 256d;
Что заставит файлы кешится на 256 дней, исключая варианта где они были модифицированы.
Если ответ не статичный файл, а API, то конечно всегда просто избавится от кеша вообще, но на много лучше иметь возможность следить о том когда запрашиваемый ресурс был модифицирован, и отвечать как обычно с нужными заголовками. Для сервера производительность нисколько не падает (один хрен), а вот клиент получив заголовок, сразу поймет что в кеше ресурс есть, прекратит запрос и заюзает версию данных с кеша что ускоряет порой в раз 10 клиент, тем более если речь идет о мобилках (3/4 G).

#57
20:55, 6 июля 2014

А кто-нибудь пробовал использовать cocos2d-x + emscripten?

#58
22:55, 6 июля 2014

pwrjd
Зачем, если есть Cocos2d-js?

#59
6:04, 7 июля 2014


MoKa
> Зачем, если есть Cocos2d-js?

1. Чтобы не изучать новый язык.
2. Использовать давно знакомый язык C++.
3. Переиспользовать код, написанный давно на C++.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумВеб

Тема в архиве.