ВСЕ СТАТЬИ
Блог начинающего программиста
Кнопка войти через Яндекс
Регистрация
Программирование на JavaScript для начинающих 2.0

Самый востребованный язык программирования

Какой язык программирования должен знать абсолютно любой программист?

Узнай прямо сейчас!

Браузерное кэширование и калькулятор

Опубликовано:

Браузерное кэширование

Кеширование позволяет загружать страницу сайта быстрее. Кэш - это буфер хранения данных. Он хранится на стороне клиента, т.е. на жестком диске локального компьютера. Операция кеширования дает возможность работать с огромным количеством данных в короткие сроки. Браузеру клиента дается команда на использование сохраненной копии.


Структура первой и следующих загрузок страницы

Рис. Кэш ресурсов страницы большого веса

При первом посещении сайта эта копия создается на диске компьютера. При последующих она отдается клиенту в браузер. Таким образом, экономится трафик между компьютером пользователя и хостингом на сервере. Благодаря этому страница сайта загружается значительно быстрее.

Такой способ использования браузерного кеширования особенно полезен для страниц большого веса, например с картинками. Изображения не скачиваются постоянно с удаленного сервера, а загружаются в браузер из кэша на компьютере.

Браузерное кэширование имеет недостаток. Если контент на сервере обновляется и изменяется, то браузер не сразу узнает об этом и будет выдавать устаревший вариант документа. Это не продуктивно. Необходимо выводить последнюю актуальную версию файла, который постоянно изменяется.

Доставка ресурсов от сервера по сети к клиенту – медленный и дорогостоящий процесс. Бывает, требуется несколько повторений обмена информацией клиента и сервера. Отчего задерживается обработка и возможна блокировка отображения страницы. Что способствует появлению дополнительных затрат на доставку требуемых данных для пользователя. Поэтому ответы сервера должны содержать политику кеширования. Такие ответы позволяют клиенту решить использовать ли данные, полученные раньше и когда их можно использовать.

Каждый проект должен иметь политику кеша. Она должна отвечать на вопросы:

  • делать ли кеш и кем текущим данным,
  • какой срок существования кеша,
  • если это возможно, как после срока действия кеша, его перепроверить.

Рекомендации по кэшу

Ответ сервера предопределяет, на какой срок поместить данные в кэш. Рекомендуется применять для статических данных, или редко изменяющихся ресурсов минимальный срок – одна неделя, а предпочтительно до одного года.

Надо тщательно выбирать срок актуальности кеша. Если срок хранения кеша сделать слишком коротким, то объекты в нем устареют слишком быстро. От этого уменьшится эффективность кэширования. Наоборот, период слишком длинный, сделает кэш неактуальным.

Информация критически важная не должна помещаться в браузерное кэширование.


Калькулятор

Калькулятор умеет складывать, вычитать, умножать, делить числа, вычислять факториал числа, среднее арифметическое значение двух чисел. Форма и ее обработка находятся в одном файле index.php. Данные передаются методом post. Список операций в теге select написан с помощью цикла PHP. Оператор выбора математической операции - switch –case. Файл function.php – библиотека функций.

Файл index.php:


<?php
/*Обработка данных, полученных из формы */
if (isset($_POST["calc"]))
{
	require_once "function.php";
	/*Принять данные */
	$n_1 = $_POST["n_1"];
	$n_2 = $_POST["n_2"];
	$operation = $_POST["operation"];
	/*Определить какая из математических операций выполнена пользователем
	и выдать результат*/
	switch ($operation)
	{
		case "add":
			$result = "$n_1 + $n_2 = " . add($n_1, $n_2);
			break;
		case "mult":
			$result = "$n_1 * $n_2 = " . mult($n_1, $n_2);
			break;
		case "sub":
			$result = "$n_1 - $n_2 = " . sub($n_1, $n_2);
			break;
		case "div":
		{
			$result = div($n_1, $n_2);
			/*Проверка на эквивалентность*/
			if ($result === false) $result = "Деление на ноль!";
			else
				$result = "$n_1 / $n_2 = $result";
			break;
		}
		case "fact":
		{
			$result = factorial($n_1);
			if ($result === false) $result = "Факториала не существуюет!";
			else
				$result = "$n_1! = $result";
			break;
		}
		/*Среднее арифметическое*/
		case "meam":
			$result = "($n_1 + $n_2) / 2 = " . meam($n_1, $n_2);
			break;
		default:
			$result = "Неизвестная операция";
	}
}
?>
<!DOCTYPE html>
<html>
<head>
	<title>Калькулятор</title>
</head>
<body>
<!--Вывод результата вычисления-->
<?php
if (isset($result)) echo "<p>Вычисление: $result</p>";
?>
<form name="myform" action="index.php?" method="POSt">
	<p>
		<!--Для сохранения введенных чисел в форму - атрибут value -->
		<input type="text" name="n_1" value="<?php echo $n_1;?>" />
		<select name="operation">
			<?php
			/*Массив списка математических операций*/
			$operations = ["add" => "+", "sub" => "-", "mult" => "*", "div" => "/", "fact" => "!", "meam" => "<>"];
			foreach ($operations as $key => $value)
			{
				if ($operation == $key)
					/*Атрибут selected - для сохранения введенных пользователем операций в форму*/
					echo "<option value='$key' selected='selected'>$value</option>";
				else echo "<option value='$key'>$value</option>";
			}
			?>
		</select>
		<input type="text" name="n_2" value="<?php echo $n_2;?>" />
		<br><br>
		<input type="submit" name="calc" value="Вычислить" />
	</p>
</form>
</body>
</html>
        

Файл function.php:


<?php
	function add($x, $y)
	{
		return ($x + $y);
	}
	function sub($x, $y)
	{
		return ($x - $y);
	}
	function mult($x, $y)
	{
		return ($x * $y);
	}
	function div($x, $y)
	{
		if ($y == 0)
		{
			return false;
		}
		return ($x / $y);
	}
	function factorial($x)
	{
		if ($x < 0) return false;
		if ($x == 0) return 1;
		$f = 1;
		for ($i = 1; $i <= $x; $i++)
		{
			$f *= $i;
		}
		return $f;
	}
	function meam ($x, $y)
	{
		return (add ($x, $y) / 2);
	}
?>
        

Для корректной работы счетной машинки десятичные знаки отделять знаком ".", а не ",". Открыть калькулятор в отдельном окне.

Кипящий чайник с выхлопом клубов пара из носика

Интенсив «Основы программирования»

Бесплатный курс по программированию

Начать обучение

Бесплатный курс по основам PHP

Бесплатный Видеокурс по PHP!

Пример создания PHP-сайта!

Подробнее

Комментарии

Пока комментарий нет

Оставить свой комментарий:

Кнопка войти через Яндекс Зарегистрироваться
Имя:
Электронная почта:
Текст комментария:
Введите код с картинки:
картинка
PHP хостинг ХостиЯ