У меня есть слайдер, в каждом слайдере одно видео, можно ли при входе с мобильного устройства показывать картинку, а если зайти с десктопа показывать видео?
Потому что в мобильной версии сайт работает очень медленно, и я хочу снизить нагрузку
Вы используете элемент <video>
? Если это так, вы можете сделать это, не прибегая к анализу пользовательского агента. Например, вы можете отобразить poster
для изображения, включить источник видео в качестве атрибута data-*
(вероятно, data-source
) и использовать метод matchMedia
нативного DOM API, чтобы заменить data-source
на живое src
в разрешениях рабочего стола... .
Почему вы хотите, чтобы настольная версия работала медленно?
@Питер ты меня неправильно понял, я наоборот хочу ускориться
Но вы хотите ускорить его только на мобильных устройствах. Это глупо. Сделайте это быстро для всех.
@Peter, потому что в настольной версии скорость 79, в мобильной 37, поэтому я решил, что если я удалю слайдер видео и заменю его изображением, скорость увеличится)
Я понятия не имею, что означают эти числа, но я не понимаю, почему увеличение их обоих — это плохо (при условии, что чем больше число, тем лучше). Я хочу сказать, что вы произвольно решили, что все мобильные устройства медленнее, чем настольные компьютеры. Это неверно. LTE быстрее, чем мой стационарный телефон, а у моего телефона более быстрый процессор, чем у моего старого ПК.
@Peter это для SEO "Поисковая оптимизация"
Вы можете использовать эту функцию для обнаружения устройства
public function detectDevice(){
$userAgent = $_SERVER["HTTP_USER_AGENT"];
$devicesTypes = array(
"computer" => array("msie 10", "msie 9", "msie 8", "windows.*firefox", "windows.*chrome", "x11.*chrome", "x11.*firefox", "macintosh.*chrome", "macintosh.*firefox", "opera"),
"tablet" => array("tablet", "android", "ipad", "tablet.*firefox"),
"mobile" => array("mobile ", "android.*mobile", "iphone", "ipod", "opera mobi", "opera mini"),
"bot" => array("googlebot", "mediapartners-google", "adsbot-google", "duckduckbot", "msnbot", "bingbot", "ask", "facebook", "yahoo", "addthis")
);
foreach($devicesTypes as $deviceType => $devices) {
foreach($devices as $device) {
if (preg_match("/" . $device . "/i", $userAgent)) {
$deviceName = $deviceType;
}
}
}
return ucfirst($deviceName);
}
Давайте продолжить обсуждение в чате.
Примечание: вы не должны слепо доверять тому, что находится в $_SERVER["HTTP_USER_AGENT"]
. Клиент может манипулировать строкой.
Также обратите внимание, что пользовательские агенты могут и меняются со временем.
Да, это возможно. Что вы пытались сделать?