Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2014, 17:51
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Вынести функцию
Подскажите необходимо задать автоматом размеры всем картинкам товаров на сайте.

Делаю так:
<img onload="var img=new Image(); img.src=this.src; this.width=img.width;this.height=img.height" src="url kartinki" alt="text" title="text1'" >


Нормально выводит ширину и высоту картинки.

Подскажите только как вывести вот это для всех картинок в отдельную функцию:
onload="var img=new Image(); img.src=this.src; this.width=img.width;this.height=img.height"


что бы не вставлять во все картинки на сайте?
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2014, 18:22
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Взрыв мозга! Что ты вообще делаешь?! Твой код ведь эквивалентен этому:
<img onload="this.width=this.width;this.height=this.height" src="url kartinki" alt="text" title="text1'" >

Зачем это вообще нужно? Картинки и так по умолчанию нужного размера!
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2014, 18:25
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Зачем, лол, картинка и так автоматически получает свои размеры.
<img onload="alert([this.width,this.height])" src="http://javascript.ru/forum/images/smilies/smile.gif" alt="text" title="text1'" >

Сообщение от Sweet Посмотреть сообщение
Зачем это вообще нужно?
Может ему атрибуты понадобились зачем-то?
<img onload="alert(outerHTML); width=width;height=height; alert(outerHTML)" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif">
__________________
29375, 35

Последний раз редактировалось Aetae, 03.07.2014 в 18:33.
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2014, 18:33
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

Мне нужно передавать фактический размер картинок товаров, что бы быстрея загружались все картинки товаров на странице
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2014, 18:46
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

djonA, а ты юморист: img onload происходит тогда, когда картинка уже загрузилась. Никакого вообще прироста ни в скорости загрузки(которого и так быть не может на самом деле), ни в скорости отрисовки страницы(тут - да), соответственно, не будет.
Размеры картинок должны быть заранее проставлены на этапе создания страницы. Это должен сразу делать движок вашено сайта, а не js, причём раз и навсегда.
__________________
29375, 35

Последний раз редактировалось Aetae, 03.07.2014 в 18:48.
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2014, 18:47
Профессор
Отправить личное сообщение для djonA Посмотреть профиль Найти все сообщения от djonA
 
Регистрация: 02.05.2012
Сообщений: 197

т.е мне нужно на стадии передачи в шаблон уже передавать размеры изображения?
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2014, 18:51
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от djonA
Мне нужно передавать фактический размер картинок товаров, что бы быстрея загружались все картинки товаров на странице
Если я тебя правильно понял, ты считаешь, что если после загрузки установить размеры картинок, то они быстрее загрузятся в прошлом? Но ведь тогда, ты и размеры им установишь раньше, сократив таким образом ещё больше время загрузки в прошлом. И так вплоть до мнговенной загрузки!
А ещё вот смотри, есть равенство: 4 * 0 = 5 * 0. Делим левую и правую часть на ноль, и получаем: 4 = 5. Клёво?
Ответить с цитированием
  #8 (permalink)  
Старый 03.07.2014, 18:58
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от djonA Посмотреть сообщение
т.е мне нужно на стадии передачи в шаблон уже передавать размеры изображения?
Я не знаю что ты там используешь для своего сайта, может монструозную cms, может статические html странички, как я тебе отвечу?
Размеры картинок должны заносится в базу\код сразу в момент добавления их тобой на сайт, тем или иным методом.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 04.07.2014, 00:53
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Я не совсем понял, что Вы хотите, но чтобы закешировать картинки, можно сделать типа этого:
Код:
getImage = function(address){
	var img=new Image()
	img.src=address
	return img
	}
addresses="image1.jpeg image2.jpeg image3.jpeg".split(" ")
images=[]
addresses.forEach(function(address){images.push(getImage(address))})
put=function(){
images.forEach(function(img){document.body.appendChild(img)})
}
onload=put
Это, наверное, может потребоваться для юзабилити, при медленном соединении, когда юзера раздражает, что из-за медленной отрисовки картинок он не может читать текст, все рябит и плавает иногда. Тут все картинки, к моменту окончания загрузки, вроде, должны загрузиться и все размеры проставлены, по онлоад мы их только вставляем.
Ответить с цитированием
  #10 (permalink)  
Старый 04.07.2014, 01:05
foo foo вне форума
Профессор
Отправить личное сообщение для foo Посмотреть профиль Найти все сообщения от foo
 
Регистрация: 17.05.2014
Сообщений: 197

Сообщение от Aetae
соответственно, не будет
Если просто отрисовка в вакууме -- то не будет. Если же надо контролировать последовательность, может быть профит. Например, некомильфо будет, если на онклик повешен показ изображения, а изображение это еще не загружено.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вынести событие в функцию And5 jQuery 3 18.05.2014 19:07
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07
проблема с передачей параметров в функцию bartonom Элементы интерфейса 4 19.09.2011 12:41
Помогите вынести обработчик события в функцию. prowoke Events/DOM/Window 3 25.03.2011 00:55
Не получается передать в функцию значение javascript_pupil Events/DOM/Window 9 06.11.2009 15:32