<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="10.00:00:00" />
</staticContent>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
.................
header('Content-Type: image/svg+xml');
// public явным образом разрешает кешировать контент не только на
// устройстве пользователя, но и на любом промежуточном кеширующем http сервере,
// если такой будет стоять между вами и пользователем
// например, провайдерский или в офисах
header('Cache-Control: public, max-age=604800');
// ОСТОРОЖНО!!! Сначала произведите валидацию
// параметра path перед передачей его в readfile()!
readfile($_GET['path']);
Для продвинутого читателя, который знает, что теги<script>
можно добавлять на страницу в любой момент при помощи самого javascript, заметим, что скрипты, добавленные таким образом, ведут себя так же, как async. То есть, выполняются как только загрузятся, без сохранения относительного порядка.
Если же нужно сохранить порядок выполнения, то есть добавить несколько скриптов, которые выполнятся строго один за другим, то используется свойство script.async = false.
вдруг люди придумали что-то более продуктивное?Так а что может быть продуктивного в IE8? MutationObserver там не поддерживается, поэтому остаётся только setInterval().
$width = 300;
$height = 500;
$scale = 16/9;
$newWidth = 0;
$newHeight = 0;
if ($width / $height > $scale) {
$newWidth = $width;
$newHeight = round($width / $scale);
} else {
$newHeight = $height;
$newWidth = round($height * $scale);
}
echo($newWidth.'x'.$newHeight);
Пример #4 Использование потоковых контекстов<?php // Создаем поток $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"Accept-language: en\r\n" . "Cookie: foo=bar\r\n" ) ); $context = stream_context_create($opts); // Открываем файл с помощью установленных выше HTTP-заголовков $file = file_get_contents('http://www.example.com/', false, $context); ?>
(function ($){
"use strict";
}(this.jQuery));
(function (W, D){
// W = window (1 символ против 6)
// D = document (1 символ против 8)
"use strict";
}(window, document));