JavaScript Обновление картинки с постоянным URL
1) Чтобы картинка перечитывалась каждый раз достаточно представить урл в виде
'http://lnfm1.sai.msu.ru/image/weather_ura.png?id=' + random(1000000)
т.е. урл как бы каждый раз меняется, но на самом деле на то что после ? в данном случае всем пофиг
Чтобы выполнить процедуру раз в 10 секунд см. jcript-функцию SetTimeout
2) Точно не скажу, но вроде можно прятать элемент как меняешь его урл, и открывать по событию onload. Но здесь могу ошибаться, пусть поправит кто знает точнее.
За идею с random спасибо!
новыюпо ЕГЭ поступал, небось?
если нужно, чтобы ссылка была постоянной, то тут AJAX нужен
'http://lnfm1.sai.msu.ru/image/weather_ura.png?id=' + random(1000000)Что за ебалайтунг!
Вместо того, чтобы сервер отдава no-cache, ты предлагаешь говнометодику.
Если это нужно для двух картинок на сервере, то правка конфига - это исключительно усложнение и пляски. И доступа к конфигу может и не быть вообще.
Если это нужно для двух картинок на сервере, то правка конфига - это исключительно усложнение и пляски.Надо делать сразу правильно.
Если ты отдаешь не статику, то сервер должен об этом говорить.
Во-вторых, клиент может находиться за кэширующим прокси, которому покласть на все заголовки, запрещающие кэширование
1) Можно ли написать скрипт который бы, скажем раз в 10 сек скачивал новыю картинку (по одной и той же ссылке) и выдавал ее на страницу.имхо, обновлять каждые 10 секунд картинку из инета - плохая практика
Во-вторых, клиент может находиться за кэширующим прокси, которому покласть на все заголовки, запрещающие кэшированиену блин
в-третьих, у человека может быть браузер, который при получении заголовков на тему кеширования поджигает машину и орёт благим матом
обновлять каждые 10 секунд картинку из инета - плохая практикато есть сайты , показывающие изображение с вебки - говно чтоли?)
Погода не так быстро и существенно меняется, чтобы даже 1кб данных тащить каждые 10 секунд. Если что-то на столько быстро меняется, есть более эффективные методы динамического обмена информацией между веб-сервером и клиентом.
. Если что-то на столько быстро меняется, есть более эффективные методы динамического обмена информацией между веб-сервером и клиентом.в том числе и для графики в html-е?
в том числе и для графики в html-е?например, графики величина - время не нужно обновлять каждый раз целиком, достаточно получать последние данные и дорисовывать. Сам график вовсе не обязательно делать в виде картинки.
например, графики величина -а если это не графики - а что-то более сложное?
в html же очень бедные возможности по изменению изображений.
на самом деле, меня больше интересует вопрос:
какие ты способы знаешь для замены динамического обновления картинок?
в html же очень бедные возможности по изменению изображений.Canvas? Flash?
Canvas?он в стандарт уже вошел?
и сколько браузеров его уже поддерживает?
последний раз когда я этим интересовался - в стандарте его не было, и поддерживал его какой-то один браузер (FF - вроде)
Canvas? Flash?на сколько я понимаю - и с тем, и с другим есть одиннаковые проблемы:
1. плохо поддерживаются - особенно как только делается шаг в сторону от wintel в сторону недокомпьютеров, мобильников и т.д.)
2. низкая скорость - прямой доступ к памяти они не дают, попиксельное изменение будет тормозным
значит все будет упираться насколько высокоуровневый и оптимизированный api для изменения изображения они дают.
api и там, и там базовый? лишь рисование графических примитивов? или есть что-то мощнее - например, применение фильтров, слияние изображений и т.д.?
он в стандарт уже вошел?wikipedia
The canvas element is part of HTML 5 and allows for dynamic scriptable rendering of bitmap images.Т.е. входит в драфт стандарта.
и сколько браузеров его уже поддерживает?Все, кроме IE. Для IE есть библиотеки вроде ExplorerCanvas и ему подобных, которые предоставляют тот же функционал через flash.
последний раз когда я этим интересовался - в стандарте его не было, и поддерживал его какой-то один браузер (FF - вроде)Это неверная информация. Первым canvas стал поддерживать webkit. Потом подтянулся firefox, потом opera.
на сколько я понимаю - и с тем, и с другим есть одиннаковые проблемы:Я прямо удивлен. Ты в самом деле не знаешь, что сейчас может HTML и Flash? На Flash есть real time face detection, например. Flash дает прямой доступ в память. Есть компилятор Alchemy из C во Flash. Например, уже скомпилен Doom I. Последняя версия flash дает доступ к шейдерам на видеокарте. Эффекты типа блюра уже давно можно было делать на проце с тем же интерфейсом шейдеров.
1. плохо поддерживаются - особенно как только делается шаг в сторону от wintel в сторону недокомпьютеров, мобильников и т.д.)
2. низкая скорость - прямой доступ к памяти они не дают, попиксельное изменение будет тормозным
значит все будет упираться насколько высокоуровневый и оптимизированный api для изменения изображения они дают.
api и там, и там базовый? лишь рисование графических примитивов? или есть что-то мощнее - например, применение фильтров, слияние изображений и т.д.?
Ну т.е. есть ощущение, что ты совсем давно с web не сталкивался.
Flash дает прямой доступ в память.а вопрос с безопасностью как решается?
Я прямо удивлен. Ты в самом деле не знаешь, что сейчас может HTML и Flash?что может html знаю.
что может flash не знаю, но знаю что может делать RIA, а что не может. и чистого прямого доступа к памяти у RIA не может быть.
Flash дает прямой доступ в память. Есть компилятор Alchemy из C во Flash.почитал про alchemy, там нет именно прямого доступа к памяти, есть доступ к памяти через byte-код - со всеми сопутствующими проверками на безопасность.
As a reminder, the Alchemy pipeline is the following :http://ncannasse.fr/blog/adobe_alchemy
.c file -> LLVM intermediate bytecode -> AVM2 bytecode
However, in general, doing so reduces a lot the performances. Especially since the abstraction level of the AVM2 bytecode is a lot higher than the one of the LLVM bytecode, it means that all arbitrary operations such as pointer and memory manipulation which are done in C must be wrapped by using the memory-safe mechanisms which are available in AVM2, such as a flash.utils.ByteArray to represent the memory data.
и мне интересно, насколько это быстро работает, потому что, например, в C# прямой доступ к памяти через fixed-поинтер, и доступ к массиву сильно отличается особенно на сложных алгоритмах, когда оптимизатору тяжело понять - можно ли убирать проверки или нельзя.
что может html знаю.Извиняюсь за несколько негативный тон — дико не выспался.
что может flash не знаю, но знаю что может делать RIA, а что не может. и чистого прямого доступа к памяти у RIA не может быть.
Что ты понимаешь под прямым доступом в память? (это, конечно, офтоп, но зато вопрос, интересный мне)
Что ты понимаешь под прямым доступом в память? (это, конечно, офтоп, но зато вопрос, интересный мне)чистый доступ к памяти - это отсутствие накладных расходов при обращении к памяти (таких как range check, проверка security, вызов функций и т.д.)
например, таким доступом является - обращение по поинтеру и к массиву в C/C++, обращение по fixed-поинтеру в C#.
замена одних цветов на другие в изображении
заливка произвольной области
прогонка матричного фильтра (например, 3x3)
и все это допустим для изображения 2000x2000x32
и соответственно, интересно, насколько хорошо они оптимизируется на flash
во flash это очень эффективно делается через пиксельные шейдеры (которые запускаются либо на CPU во много потоков, либо на видеокарте).
во flash это очень эффективно делается через пиксельные шейдеры (которые запускаются либо на CPU во много потоков, либо на видеокарте).можешь показать как через них решится, например, задача заливки?
Погода дана для примера. Нужно обновлять каптинки с веб-камер наблюдания, они находятся на сервере с медленным (спутниковым) каналом. Сервера стоят в горах
можешь показать как через них решится, например, задача заливки?http://www.pixlr.com/editor/ — задача решается хорошо
http://www.pixlr.com/editor/ — задача решается хорошосам-то хоть проверял?
создаешь максимальный документ 3500x3500, жмешь залить - подвисает секунд на 5-10.
после 4-ой перекраски, и пары рисований пером - вообще, все перестало рисоваться - наверное, что-нибудь переполнилось - FF при этом гиг отожрал - хотя изображение всего 40 метров должно весить.
сложность задачи закраски = 3500*3500*4 = 4*10^7
кол-во выполняемых тактов на современном процессоре можно оценить как 10^10тактов/секунда
т.е. куда-то как минимум делось три порядка. 1000 тактов на точку - это как-то много.
Оставить комментарий
raggakings
Всем добрый день. У меня такой вопрос, может быть кто-нибудь сталкивался.В каренте так как необходим быстрый ответ. Соррии за кроспост!
Если некоторая ссылка (например http://lnfm1.sai.msu.ru/image/weather_ura.png%29 изображение по которой периодически обновляется.
1) Можно ли написать скрипт который бы, скажем раз в 10 сек скачивал новыю картинку (по одной и той же ссылке) и выдавал ее на страницу.
2) Можно ли сделать так что бы выдача(обновление) осуществлялась только когда изображение полностью загружено.
Большое спасибо.