Pavel Shvedov, это то да, но согласитесь, что возможность выполнить не понятный код и возможность его модифицировать добиваясь определенного результата это не одно и тоже?
Антон Спирин, почемуже. Ведь есть различные виды запутывания. Можно например разработать свой иетерпритатор по типу брайнфака, написать весь клиент на нем, в добавок вместо json также придумать свой собственный формат данных с зубрдробительной логикой, а библиотеки работающие с этими данными также написать на вышеизобретенном интерпретаторе. Конечно любой сможет посмотреть как код так и данные, но будет иметь проблемы с пониманием)))
sl0, а если:
- у него исходные данные с рваным шагом (то раз в пару миллисекунд, то замрет на 50 мс) ????
- для конкретного значение времени вообще нет данных?
- или для таймстампа 12 задано несколько ключей со значениями более 10 а для 22 один со значением 0 а вычислить надо значение для 21 (по вашему методу среднее будет около 10 а должно быть близким к нулю)
Чтобы не заниматься телепатией ответьте на ряд вопросов:
1. что за се6рвер раздает файлы (http, ftp)
2. с помощью какого модуля (фреймворка) вы подняли даздающий сервер (express, http, чтото еще)
3. используются ли сертификаты (ssl, tls...) и как они подключены (к серверу на ноде, к нгинксу)
4. что говорят сервера (логи раздающего сервера и нгинкса) при зависании закачки сайта?
5. ну и посмотреть бы код раздающего сервера.
Ragtime_Kitty, нашел. По сути об этом и говорится в том куске английского текста что дал выше. Вот его гуглперевод:
Когда элемент canvas создается, а затем всякий раз, когда устанавливаются атрибуты width и height (либо на новое значение, либо на предыдущее значение), растровое изображение и любые связанные с ним контексты должны быть очищены обратно в свое исходное состояние и повторно инициализированы с помощью вновь указанного размеры координатного пространства
То есть при установке размеров происходит полная переинициализация канваса и отчистка всех связанных с ним контекстов.
Ragtime_Kitty, по факту да, но документальное подтверждение в спецификациях пока не нагуглил. Как найду, дам ссылку.
Чтобы понять почему реализовали именно так, надо быть нкмного программистом, и желательно попробовать написать класс представляющмй линейную память в виде произвольного двухмерного массива. Тогда будет очевидно, что любое изменение размеров этого 2х мерного массива приводит к перевыделению памяти, проще и бысрее перевыделить память чем правильно перенести данные из старого массива в новый, линейное копирование тут не катит, ведь данные в 2хмерном массиве картинке связанны между собой не только по горизонтальной оси но и по вертикальной. С другой стороны алгоритм такого переноса совсем не сложен и легко реализуем, так же метаданные о шрифтах, цветах и прочем вообще не привязанны к размеру и вполне могли бы переноситься. Почему при разработке спецификации этого не слелали можно только гадать. Видимо потому, что в условиях переинициализации канваса посчитали данныйфункционал избыточным
When the canvas element is created, and subsequently whenever the width and height attributes are set (whether to a new value or to the previous value), the bitmap and any associated contexts must be cleared back to their initial state and reinitialized with the newly specified coordinate space dimensions.
Подозреваю, что сохраненные состояния тоже сбрасываются вместе с остальными параметрами
becks, я примерно так и понял. По сути для решения Вашей задачи силами "не обученых студентов" система моделирования должна быть интеллектуальной и понимать чем отличается болт от гайки, посадочное место от простой дырки и так далее. Чтобы система могла это понимать она должна быть либо очень умной (настолько умных в настоящее время не существует) либо для всех объектов модели должны предоставляться наборы метаданных, описывающих не только форму но и предназначение и многие другие характеристики. Думаю что в настоящее время таких кибких и универсальных систем моделирования, способных самостоятельно разобратся с анимацией процесса сборки/разборки произвольной модели просто не существует. На ум приходит иолько чтото типа компас3д, как обоадающий наьорами метаданных и способный рассматривать детали как именно детали а не их 3д представление. Но думаю всеже дешевле будет найти студентов умеющих работать в блендере, чем специалистов, саособных переработать ваши 100500 моделей в компас.
PS: для блендера можно писать расширения (на питоне). Так что если пойдете по пути написания собственного ПО, делая его в виде расширения для блендер вы получите много плюшек сразу из коробки (готовую систему рендеринга, импорт и экспорт различных форматов, интерфейс и многое другое)
Да, такой интерфейс существует. Он прост и доступен, правда не бесплатен. Это любая фриланс площадка.
PS: не пытаюсь Вас ругать или поучать, действительно незачто, и Ваша задача достаточно простая, любой более менее адекватный пакет 3D моделирования позволит реализовать ее даже начинающему. Но... это не будет выглядеть так: хочу чтобы болты встали по спирали в свои позиции, за 3 секунды, подлетев закрутились по часовой стрелке, а камера при этом выбрала наилучшие ракурсы чтобы все это показать. В реальности все это придется делать в ручную, указывать начальные и конечные положения, траектории перемещения, ориентацию объектов в пространстве на всех участках траектории или в ключевых кадрах, положение камеры и освещение, скорость движения объектов и многое другое. Как то так.
PPS: если прямо сейчас взять и установить например blender, то уже к завтрашнему вечеру вы вполне сможете освоить азы необходимые для создания таких анимаций, при условии что сами модели уже готовы)
prostranstvovremya, тут все очень любят хаять пиратство. Причина проста, значительная часть собравшихся здесь зарабатывают предоставляя различный интернет контент, и как следствие очень негативно относятся к любым поползновениям, нацеленым на получение контента без оплаты. Вот только я уверен, что многие из нас абсолютно не стеснялись в свое время качать с торрентов терабайты киношек, музыки, книг и аудиокниг, игр и другого лицензированного контента. Так что не слушай никого, как говорят психологи, чаще всего громко возмущаются именно те, кто больше всего нарушают.
prostranstvovremya, судя по реакции интерфейса картинка подгружается в канвас кусками, в зависимости от позиции области просмотра на превью. В код не лез, но если это так, то самый простой способ вытащить картинку это сделать принтскрины и склеить эти куски в любом графическом редакторе.
DanKud, не меняя серверный api немного снизить нагрузку позволят longpooling запросы. Но это даже не полумера, это четвертьмера. Если идти по вашему пути то действительно можно создать некоторый промежуточный микросервис, принимающий запросы от клиетов в виде массивов id и перезапрашивайющий их статус у основного сервера, при этом с обязательным кэшированием результатов, чтобы избежать лишних запросов к основному серверу.
НО ... все это не имеет смысла если автор вопроса может доработать API основного сервера.
Jintsuu, измените сервис (API), чтобы он мог обрабатывать id пачками, и пачками же возвращать статусы.
В любом случае, без изменения/доработки серверного API вы эту проблему не решите и вам останется только долбить сервер кучей запросов. Возможно чуть сократить нагрузку можео с помощью longpooling, но это всеравно не решит проблему полностью
Василий, я тоже сторонник вебсокетов, но както делал внутренний вебсервис для одной госконторы, и у них везде ие8. Пришлось изголятся, делая чтото типа faye
В первом варианте замените
text.replace(/\}\s+\{/g, "},{")+
На
text.replace(/\}\s*\{/g, "},{")+