4

Я хочу использовать атрибут data-src, когда screen.width > 767 и data-src-small, когда screen.width < 768. У меня есть два метода в виду:if + переопределить переменную vs. if + else. Что лучше, производительность мудрая?

Метод 1:

var src = "data-src"; 

if($(window).width() < 768) { 
    src = "data-src-small"; 
} 
// do something with src variable. 

Метод 2:

if($(window).width() > 768) { 
    var src = "data-src"; 
} 
else { 
    var src = "data-src-small"; 
} 
// do something with src variable. 

Я наткнулся на эту ситуацию дважды. Поэтому я думаю, что важно знать, какой метод лучше, так как эта ситуация может возникнуть позже.

Редактировать: Я не имею в виду этот вопрос, чтобы быть конкретным для javascript. Я имею в виду, в общем, что это быстрое, переменное переназначение или дополнительное условие для оценки в else? Такая же ситуация может быть на языке Си тоже, как это:

string salary; 
... 
... 
salary = "LOW"; 
if(person == "RICH") { 
    salary = "HIGH"; 
} 

Method2:

string salary; 
... 
... 
if(person == "RICH") { 
    salary = "HIGH"; 
} 
else { 
    salary = "LOW"; 
} 

Если ответ зависит от компилятора и языка, пожалуйста, ответ на двигатель V8 Chrome для javascript языка и gcc- 4.9.2 компилятор для C язык. Благодаря

+0

Метод 2 может быть записана как 'если ($ (окно) .width()> 768) {var src = "data-src"; вернуть; } var src = "data-src-small"; ' – Roberrrt

+1

Это класс CSS? Разве медиа-запросы не были бы лучшим выбором? – Kiogara

+0

@ Небеса, вы правы. Комментарий удален – taguenizy

ответ

3

Я хотел бы предложить метод 3-е, которые не требуют каких-либо JS или CSS

<picture> 
 
    <source media="(min-width: 768px)" srcset="https://dummyimage.com/600x400/000/f00&text=big"> 
 
    <source media="(max-width: 768px)" srcset="https://dummyimage.com/300x200/000/fff&text=small"> 
 

 
    <!-- fallback if browser don't understand picture element --> 
 
    <img src="https://dummyimage.com/600x400/000/0f0&text=small" alt="kitten-curled"> 
 
</picture>

+0

Но это было бы проблематично для браузеров IE и других старых браузеров. – user31782

+3

Это не проблема для IE, это просто покажет котенка-скрученную для IE ... Это прогрессивное повышение - смысл доза, которая понимает, что она получит лучшее решение. У старых пользователей IE есть только их собственные вины (это то же самое, когда вы разрабатываете видео, и вы помещаете в него объект флэш-памяти, но он не будет отображаться или загружаться, если браузер «

+0

Throw in немного css, как 'max-width 100%' – Endless