Pull to refresh

Comments 71

Тема уже изъезжана в доль и поперек, но, на мой взгляд, пост лишим не будет.
Предлагаю и у вас для связности добавить нас.
Да понятно, надеялся Роман сразу сделал это зеркально.
Это все конечно интересно, но про ресайз картинок вы немного загнули.
Чем вы ресайзите — nearest neighbour что-ли?
Совершенно не убедили в пользе многоходовой комбинации
Не совсем, во Flash bilinear interpolation + пошаговое сжатие. Польза видна именно при создании предпросмотра для огромных изображений. Если этого не делать, то некоторые изображения выглядят как рандомный набор пикселей.
UFO just landed and posted this here
Интерполяция это не совсем ресайз. Разве нету функции специально для ресайза? (я лично не в курсе, на флеше не писал никогда)

Похоже у вас просто алиасинг проступает. Вот если бы вы сильно заблурили картинку перед интерполяцией — тогда бы одношаговая интерполяция приводила бы к нормальному результату.

PS.
Когда то давно решал похожую задачу с аплоадером на ява-апплетах :-)
Во Flash есть, но путем методов проб и замеров поняли, что этот способ самый быстрый и дает приемлимый результат.
UFO just landed and posted this here
Это пример на canvas, но через flash будет тоже самое, если сжимать разом. Сжимать можно и на сервере, но это не отменяет того, что предпросмотр будет «кривой».
С уменьшением всегда были проблемы.
Это на увеличение разработано очень много алгоритмов, потому что текстуры раньше были маленькие.
Вообще никакой интерполяцией нельзя получить нормальное уменьшение — тут надо работать на контурах и контрастах.
Хороший пример — сравним обычный tri-linear и AA.

Да, красиво. Но увы на клиенте этого нету (native) :[
сравним обычный tri-linear и AA

Не AA, а AF (anisotropic filtering)
Исходники библиотеки в несжатом виде, не помешали бы, для удобства просмотра)
А не подскажите процент браузеров без поддержки Flash?
И ещё интересен процент без поддержки и FileAPI и Flash :)
Без поддержки Flash, это ещё и AdBlock, на наших проектах ~5%
Скажите пожалуйста, на каких условиях ваши скрипты можно использовать в своих проектах?
Вы мой вопрос про исходники Флеш-части принципиально игнорируете?
Сорри, не специально. В ближайшие время обязательно добавлю :]
Спасибо большое! Для меня эта тема была актуальна. Я использовал флеш для написания контрола, если флеш не поддерживался показывался стандартный контрол, но вот до такого не додумался. Отлично все работает, особенно превью :)
На самом деле это была основная задача и головная боль, как работать с Flash, чтобы не знать о нём :]
А как же про поддержку догрузки и защиту от разрывов связи (отправка частями)?
Изначальной задачей было сохранить текущую функциональность и избавиться от недостатков. Функциональность будет наращиваться и загрузка по частям первая в списке.
Планируется, но там не все однозначно, так как нужна поддержка сервера.
Обновите пожалуйста файл лицензии на Git Hub, по-моему там просто шаблонный текст. Очень хотелось бы использовать в своём проекте, если лицензия подойдет :)
Упс, выше увидел, что BSD. Спасибо :)
Вот за что люблю Хабр, что он подкидывает статьи именно в тот момент, когда они нужны. Спасибо RubaXa.
Лично я частенько уменьшаю, даже в графическом редакторе, в 2 шага: до удвоенного необходимого, потом до нужного.
Автоматически поворачивать картинку на основе EXIF информации есть в планах? У 90% простых людей на этой стадии возникают проблемы.
Конечно, даже сейчас это можно делать через imageTransform на основе FileAPI.getInfo, но дополнительный параметр при upload обязательно будет.
Я имею в виду сразу встроить этот функционал в библиотеку на github, чтобы работало из коробки.
Добавьте проверку на Safari, он «особенный», говорит, что multiple file input поддерживает, а передает что-то неправильно, в результате на сервер приходят файлы с filesize = 0, короче их нет.
Небольшое обсуждение можно найти здесь.
Я для Safari multiple upload на флэше реализую из-за этого
это для Safari на винде, на маке не в курсе
Хм, не знал, но это не важно, для Safari < 5.4 и так Flash. Вся библиотека построена на концепции поддержки нужной технологии в необходимом объеме.

P.S. Проверил в 5.1.7 (windows), размер файла есть.
то есть Вы с флэшем проверили?
хм, забавно
Windows 7 + Safari 5.1.7 там же дает
fileName:calendar_current_date_highlight.jpg name:calendar_current_date_highlight.jpg fileSize:0 lastModifiedDate:Thu Jan 01 1970 04:00:00 GMT+0400 (Ìîñêîâñêîå âðåìÿ (çèìà)) size:0 type:image/jpeg fileName:calendar_in_gmail.png name:calendar_in_gmail.png fileSize:0 lastModifiedDate:Thu Jan 01 1970 04:00:00 GMT+0400 (Ìîñêîâñêîå âðåìÿ (çèìà)) size:0 type:image/png
На mailru.github.com/FileAPI тоже по нулям при нескольких файлах.
Там смысл именно в том, что когда выбираешь 1 файл с аттрибутом multiple, то все работает.
Баг появляется только если несколько файлов выбрать.
Да, придется добавить проверку, но так всё хорошо было, эх…
и не говорите ))
Еще очень рекомендую проверить в режиме флэша, когда сам флэш передает на сервер (этот режим используется в библиотеке?), по HTTPS (только нужен правильный SSL сертификат)
У нас почта работает только по https, этот режим должен быть оттестирован хорошо.
Можно подробнее? Мы тоже мучились с https. Пока решили её ping'ом crossdomain.xml на том домене, куда грузим файл.
я не флэш-программер, поэтому не в курсе, как там что внутри, опишу, как я это понимаю.
В режиме передачи файла по HTTPS флэшем происходит проверка сертификата, то есть флэш «выступает в роли браузера» (так как в нормальной ситуации этим занимается браузер).
У некоторых браузеров была проблема в том, что база сертификатов корявая/ограниченная, то есть они доверяют только проверенным источникам (к примеру, GoDaddy), поэтому если у вас:
1) self-signed сертификат (что вполне вероятно на dev-стадии)
2) нормальный сертификат, но не содержит в себе инфу от подписавшего его источника
то появляются проблемы с тем, что сертификат не принимается браузером.
Флэш ведет себя точно также, то есть тупо отбрасывает такие сертификаты и выдает ошибку IO #2038.
В первом случае тут ничего не поделаешь.
Во втором нужно просто добавить корневой сертификат проверенного источника (который подписал ваш сертификат) внутрь вашего сертификата (это для Nginx) — то есть добавить цепочку сертификатов.
В случае апача добавить параметров SSLCACertificateFile и SSLCertificateChainFile.

По nginx смотреть тут.
У нас так и сделано — это не панацея. Ошибка плавает в зависимости от сочетания: сеть [+ proxy] + браузер + flash player. Именно поэтому, перед тем как переключиться на Flash, пробуем забрать crossdomain.xml, в случае ошибки переходим на iframe.
ну тут все только по собственному опыту, методом тыков и «затыков», я пришел именно к тому, что проблема в недостаточной инфе в сертификате, после рекомендаций со ссылки по nginx, проблема полностью пропала. Насчет проблем сети не знаю, не испытывал, но логично, что выпадет тоже IO error, что логично
1) кстати, если, к примеру, вы уже пропинговали и решили, что можно заюзать флэш, пока пользователь выбирал файл для загрузки, у него отвалилась сеть, он в конце концов выбрал свой файл и флэш пытается отправить его, что произойдет?
2) если решили юзать флэш аналогично первому случаю, пользователь выбрал большой файл и посреди передачи флэшем отвалилась сеть, что будет?
По крайней мере, такая логика в uploadify флэше была в версии 2.10 (вроде), они там использовали флэш из swfupload.
Я недавно как раз обертку писал с учетом поддержки HTML5 некоторыми браузерами и присутствием/отсутствием флэша в системе.
Так что все объяснение только по опыту работы с этим флэшем
Очень изменяюсь, ступил, выбрал только один файл, там и в правду 0. Единственное, что радует, Safari больше не выпускается под Windows.
Извините, что комментарий не совсем в тему. В почте mail.ru, когда нажимаешь «Ответить» на письмо, который ТЫ сам отправил кому-то, в поле «получатель» подставляется ТВОЙ ЖЕ адрес. Как вы считаете, это нормальная функциональность? Мое мнение, я думаю, понятно :)
Вы правы, нелогично. Я, честно говоря, почти всегда жму «Ответить всем» (и тогда, логично, все подставляются).

Исправим.

Правда, остается вопрос — если я нажал «Ответить» на письмо, в котором несколько получателей — кому из них пойдет ответ? Наверное, самое логичное — всем. Правда, тогда получается что в Отправленных кнопка «Ответить» работает так же, как «Ответить всем».
Сделать формочку выбора, кому отвечать, и кнопку ответить всем
Какую еще «формочку выбора»? :) В форме написания письма и так есть поле «кому отвечать». И кнопка «ответить всем», конечно, тоже есть.
Позвольте совсем идиотский вопрос. А нельзя было совсем без флеша? Через multipart всегда можно загрузить. Неужели так нужен ресайз на клиенте, чтобы поддерживать флеш-компонент?
Думаю, для таких больших порталов, как mail.ru, каждый такт важен.
Конечно можно, Flash работает только в том случае, если нет поддержки File API в нужно объеме. Всё зависит от доли IE < 10, да и размеров проекта.
Sign up to leave a comment.