Контакты
Местоположение
Россия

Наибольший вклад в теги

Все теги (13)

Лучшие ответы пользователя

Все ответы (9)
  • В чём прикол использования Map (и прочих подобных) в JS против for?

    houseprog
    @houseprog
    Веб-разработчик
    Функция все же несколько иная по типу действия и как следствие применимости, нежели чем for. Основное и самое главное отличие, это новый-независимый контекст работы с элементом массива при каждом проходе(функция обратного вызова), с моментальным сбором результатов в новый массив. Да, в for все это тоже можно организовать, но кода потребуется несколько больше, а тут получается очень кратко. И еще, при переборе массива, не нужно указывать индекс элемента массива, как это делается в for. В общем map действительно хорош, но применять его понятное дело надо там - где это уместно.

    Также в условиях решения одинаковой задачи(простого перебора массива):
    + Быстрое написание кода
    + Код более читабелен, в том числе теми кто будет потом работать с вашим творением
    Ответ написан
    5 комментариев
  • При вставке изображения через background очень сильно теряется качество, появляется зернистость. пиксельные края элементов и тд. Как решить проблему?

    houseprog
    @houseprog
    Веб-разработчик
    Перед вставкой изображения в CSS background-image, предварительно следует подготовить его - масштабировать до нужного размера средствами PHP или JS. Например, на хостинг можно положить скрипт, resize-image.php а путь к изображению указывать так: resize-image.php?pathimage=images/photo1.jpg&width=200&height=200

    В результате изображение будет вставляться в background-image уже нужного размера и браузеру не придется его масштабировать самостоятельно(с чем он справляется как вы верно заметили не очень).

    Скрипт на PHP может выглядеть так:

    <?php
    
    function img_resize($src, $dest, $width, $height, $rgb = 0xFFFFFF, $quality = 100) {  
    	    if (!file_exists($src)) {  
    	        return false;  
    	    }  
    	    $size = getimagesize($src);  
    
    	    if ($size === false) {  
    	        return false;  
    	    }  
    
    	    $format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));  
    	    $icfunc = 'imagecreatefrom'.$format;  
    	    if (!function_exists($icfunc)) {  
    	        return false;  
    	    }  
    
    	    if($width==0)if($size[0]<=800)$width=$size[0];else $width=800;
    	    if($size[0]<$width)$width=$size[0];  
    	    if($size[1]<$height)$height=$size[1];  
    
      
    	    $x_ratio = $width  / $size[0];  
    	    $y_ratio = $height / $size[1];  
      
    	    if ($height == 0) {  
      
    	        $y_ratio = $x_ratio;  
    	        $height  = $y_ratio * $size[1];  
      
    	    } elseif ($width == 0) {  
      
    	        $x_ratio = $y_ratio;  
    	        $width   = $x_ratio * $size[0];  
      
    	    }  
      
    	    $ratio       = min($x_ratio, $y_ratio);  
    	    $use_x_ratio = ($x_ratio == $ratio);  
      
    	    $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);  
    	    $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);  
    	    $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width)   / 2);  
    	    $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);  
      
    	    $isrc  = $icfunc($src);  
    
    	    $idest = imagecreatetruecolor($width, $height);  
    
    	    imagefill($idest, 0, 0, $rgb);  
    
    	    imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);  
    
    	    header("Content-type: image/jpeg");
    	    imagejpeg($idest);
      
    	    imagedestroy($isrc);  
    	    imagedestroy($idest);  
     
    }  
    
    header("Content-type: image/jpeg");
    header("Cache-control: public");
    header("Expires: " . gmdate("D, d M Y H:i:s", date("U")+(86400*365.25)) . " GMT");
    
    img_resize($_GET['pathimage'], $dest, $_GET['width'], $_GET['height'], $rgb = 0xFFFFFF, $quality = 70);
    Ответ написан
    1 комментарий
  • Как посчитать и вывести количество записей в ячейке базы данных на PHP?

    houseprog
    @houseprog
    Веб-разработчик
    При запросе к БД, переменная $row будет содержать массив с данными пользователя. В массиве будет элемент $row['pay_news'], в котором в свою очередь будет строковое значение "id новостей через запятую".

    Вам нужно
    1) Разбить строку на массив используя разделитель запятую
    2) Посчитать количество элементов в получившемся массиве

    $idNewsArray = explode(',' , $row['pay_news']);
    $countNews = count($idNewsArray );


    Переменная $count будет содержать количество записей, далее все что нужно, это просто вывести это значение на странице:

    echo $countNews;
    Ответ написан
    1 комментарий
  • Существует ли API страховых компаний?

    houseprog
    @houseprog
    Веб-разработчик
    Работал с API различных страховых компаний(Ингосстрах, Альфастрахование, ВСК, Ресо и т.д.) и агрегаторов(Ингуру, Сравни, Пампаду и т.д.) у всех своя реализация API, предоставляют документацию, но работать с ними зачастую сложно - у многих наблюдаются ошибки в работе, в методах, а данных, документация кстати тоже часто страдает от неполноты и ошибок. Тех. поддержка зачастую некомпетентна, вопросы технического плана перенаправляют старшему специалисту, ждать приходиться по несколько дней. Подробнее описание опыта и некоторых особенностей API тех или иных СК, можно прочитать в моем блоге https://rche.ru/?s=интеграция
    Ответ написан
    Комментировать
  • Как задать атрибут maxlength обьекту через js?

    houseprog
    @houseprog
    Веб-разработчик
    Атрибут maxlength не применим для HTML элемента P.
    Он поддерживается только INPUT, пример <input type="text" size="30" maxlength="10">

    Вариант задать блогу P, свойство CSS text-overflow, со следующим значением

    p {
      width: 200px; /* ширина блока */
      white-space: initial;
      overflow: hidden;
    }


    Еще как вариант, резать значение goods[nomer].name до нужной длины, например:

    pname.innerHTML = goods[nomer].name.substr(0, 50);
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (2)