Тайминги пÑоизводиÑелÑноÑÑи: как долго - долго?
Ðе ÑÑÑеÑÑвÑÐµÑ ÑÑÑко ÑÑÑановленного набоÑа пÑавил, коÑоÑÑй опÑеделÑÐµÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½ÑÑ ÑкоÑоÑÑÑ Ð·Ð°Ð³ÑÑзки ÑÑÑаниÑ, но ÑÑÑеÑÑвÑÑÑ Ð¾ÑобÑе ÑÑководÑÑва, коÑоÑÑе ÑекомендÑÑÑ Ð¾Ð¿ÑеделÑннÑе Ñайминги: загÑÑзка конÑенÑа - 1 ÑекÑнда, ожидание - 50мÑ, анимаÑÐ¸Ñ - 16,7мÑ, оÑÐ²ÐµÑ Ð½Ð° дейÑÑÐ²Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ - Ð¾Ñ 50 до 200мÑ.
ÐагÑÑзка конÑенÑа
ÐонÑÑие "до ÑекÑндÑ" ÑаÑÑо ÑÑиÑаеÑÑÑ Ð¾Ð¿ÑималÑнÑм Ð´Ð»Ñ Ð·Ð°Ð³ÑÑзки. Ðо ÑÑо ÑÑо ознаÑаеÑ? ÐÑавило ÑекÑÐ½Ð´Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ ÑаÑÑмаÑÑиваÑÑÑÑ ÐºÐ°Ðº пÑавило макÑималÑного вÑемени, за коÑоÑое полÑзоваÑÐµÐ»Ñ Ð¿Ð¾Ð¹Ð¼ÑÑ, ÑÑо запÑÐ¾Ñ Ð±Ñл оÑпÑавлен и бÑÐ´ÐµÑ Ð·Ð°Ð³ÑÑжен. ÐапÑимеÑ, когда бÑаÑÐ·ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº ÑÑÑаниÑÑ Ð¸Ð»Ð¸ ÑоновÑй ÑÐ²ÐµÑ Ð¸ показÑÐ²Ð°ÐµÑ ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ.
Ðак пÑавило, пеÑвÑй ÑеÑÑÑÑ, коÑоÑÑй полÑÑÐ°ÐµÑ ÐºÐ»Ð¸ÐµÐ½Ñ - ÑÑо HTML докÑменÑ, коÑоÑÑй заÑем Ð´ÐµÐ»Ð°ÐµÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð½Ð° загÑÑÐ·ÐºÑ Ð¾ÑÑалÑнÑÑ ÑеÑÑÑÑов. Ðак бÑло подмеÑено в ÑÑаÑÑе о кÑиÑиÑеÑком пÑÑи ÑендеÑинга - как ÑолÑко бÑаÑÐ·ÐµÑ Ð¿Ð¾Ð»ÑÑÐ°ÐµÑ Ð´Ð°Ð½Ð½Ñе, он ÑÑÐ°Ð·Ñ Ð½Ð°ÑÐ¸Ð½Ð°ÐµÑ Ð¸Ñ Ð¾Ð±ÑабоÑкÑ, вмеÑÑо Ñого, ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð¶Ð¸Ð´Ð°ÑÑÑÑ Ð·Ð°Ð³ÑÑзки вÑÐµÑ ÑеÑÑÑÑов.
Ðа, одна ÑекÑнда на загÑÑÐ·ÐºÑ â ÑÑо Ñ Ð¾ÑоÑÐ°Ñ ÑелÑ. Ðо лиÑÑ Ð½ÐµÐ¼Ð½Ð¾Ð³Ð¸Ðµ пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑигаÑÑ ÑÑой ÑкоÑоÑÑи. ÐÑÑ Ð·Ð°Ð²Ð¸ÑÐ¸Ñ Ð¾Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ð¹. ÐапÑимеÑ, Ð¾Ñ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Â«Hello World», ÑабоÑаÑÑего в коÑпоÑаÑивной (локалÑной) ÑеÑи, бÑÐ´ÐµÑ Ð¾Ð¶Ð¸Ð´Ð°ÑÑÑÑ Ð·Ð°Ð³ÑÑзка за миллиÑекÑндÑ. ÐолÑзоваÑÐµÐ»Ñ Ð¸Ð· ÑевеÑной СибиÑи, полÑзÑÑÑийÑÑ EDGE-мобилÑной ÑеÑÑÑ Ð¸ ÑÑÑÑойÑÑвом 5-леÑней давноÑÑи, веÑоÑÑно, поÑÑиÑÐ°ÐµÑ Ð´Ð°Ð¶Ðµ 20-ÑекÑнднÑÑ Ð·Ð°Ð³ÑÑÐ·ÐºÑ Ð±ÑÑÑÑой. Ðднако, в ÑÑеднем, еÑли Ð²Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑеÑе пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ оÑвеÑаÑÑ Ð½Ð° запÑÐ¾Ñ 3 или 4 ÑекÑндÑ, вÑ, веÑоÑÑно, поÑеÑÑеÑе полÑзоваÑелÑ. Ð, ÑÑо еÑÑ Ñ Ñже, ÑÑÐ¾Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð²ÑÑд ли веÑнÑÑÑÑ Ðº вам в ближайÑее вÑемÑ.
Рделе опÑимизаÑии пÑоизводиÑелÑноÑÑи ÑекомендÑеÑÑÑ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑиÑÑ Ð°Ð¼Ð±Ð¸ÑиознÑе задаÑи по пеÑвиÑной загÑÑзке конÑенÑа. ÐапÑимеÑ, 5 ÑекÑнд Ð´Ð»Ñ 3G ÑеÑей и 1.5 ÑекÑÐ½Ð´Ñ Ð´Ð»Ñ Ð¾ÑиÑного Т1 канала. ÐÐ»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñии внÑÑÑи пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñели Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÐµÑÑ ÑÑÑоже. Ð ÑÑаÑÑÑÑ, Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии можно иÑполÑзоваÑÑ Service Workers и кеÑиÑование.
Ðжидание
ÐÑаÑзеÑÑ Ð¾Ð´Ð½Ð¾Ð¿Ð¾ÑоÑÐ½Ñ (Ñ Ð¾ÑÑ ÑÑÑеÑÑвÑÑÑ ÑоновÑе поÑоки, доÑÑÑпнÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ web worker-ов). ÐÑо ознаÑаеÑ, ÑÑо взаимодейÑÑвие Ñ Ð¿Ð¾Ð»ÑзоваÑелем, оÑÑиÑовка и вÑполнение ÑкÑипÑов вÑполнÑÑÑÑÑ Ð² одном поÑоке. ÐÑли поÑок занÑÑ Ð²ÑÑиÑлением Ñложной JavaScript логики, ÑÑÐ¾Ñ Ð¿Ð¾Ñок не ÑÐ¼Ð¾Ð¶ÐµÑ Ð¾Ð±ÑабаÑÑваÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкий ввод (напÑимеÑ, нажаÑие кнопок). Ðо ÑÑой пÑиÑине важно ÑазбиваÑÑ Ð²Ñполнение ÑкÑипÑов на неболÑÑие ÑаÑÑи, каждÑй из коÑоÑÑÑ Ð²ÑполнÑеÑÑÑ Ð½Ðµ болÑÑе 50мÑ. ÐÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿Ð¾ÑÐ¾ÐºÑ ÑвоевÑеменно ÑеагиÑоваÑÑ Ð½Ð° полÑзоваÑелÑÑкий ввод.
ÐнимаÑиÑ
ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿ÑокÑÑÑка и дÑÑгие анимаÑии вÑглÑдели плавно, конÑÐµÐ½Ñ ÑÑÑаниÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ обновлÑÑÑÑÑ Ñ ÑаÑÑоÑой 60 кадÑов в ÑекÑÐ½Ð´Ñ (60 fps), Ñо еÑÑÑ Ð¾Ð´Ð¸Ð½ ÐºÐ°Ð´Ñ Ñаз в 16.7мÑ. Ð ÑÑи 16.7мÑ. Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ñ Ð¾Ð´Ð¸ÑÑ Ð²Ñполнение ÑкÑипÑов, компоновка и оÑÑиÑовка. ÐелайÑе пÑиложение Ñаким, ÑÑÐ¾Ð±Ñ Ð¿Ñиложение могло иÑполÑзоваÑÑ 6Ð¼Ñ Ð½Ð° оÑÑиÑÐ¾Ð²ÐºÑ ÐºÐ¾Ð½ÑенÑа, а в оÑÑалÑнÑе 10Ð¼Ñ Ð¼Ð¾Ð³Ð»Ð¾ занимаÑÑÑÑ Ð¾ÑÑавÑимиÑÑ Ð²ÑÑиÑлениÑми. ÐÑÐ±Ð°Ñ Ð´ÑÑÐ³Ð°Ñ ÑаÑÑоÑа кадÑов, оÑобенно еÑли она оÑÑÑвиÑÑÐ°Ñ Ð¸ непоÑÑоÑннаÑ, ÑоздаÑÑ Ð²Ð¿ÐµÑаÑление завиÑаÑÑего пÑиложениÑ.
ÐÑзÑвÑивоÑÑÑ
Ðогда полÑзоваÑÐµÐ»Ñ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑвÑÐµÑ Ñ ÐºÐ¾Ð½ÑенÑом - оÑÐµÐ½Ñ Ð²Ð°Ð¶Ð½Ð¾ даваÑÑ Ð¾Ð±ÑаÑнÑÑ ÑвÑÐ·Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. ÐÑÐµÐ¼Ñ ÑеакÑии не должно ÑоÑÑавлÑÑÑ Ð±Ð¾Ð»ÑÑе 100мÑ, а лÑÑÑе - 50мÑ. 50Ð¼Ñ Ð¾ÑÑÑаÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелем как "мгновенно". РеакÑÐ¸Ñ Ð½Ð° полÑзоваÑелÑÑкое взаимодейÑÑвие должно ÑаÑе ÑÑвÑÑвоваÑÑÑÑ Ð¼Ð³Ð½Ð¾Ð²ÐµÐ½Ð½Ñм (напÑимеÑ, наведение кÑÑÑоÑа на кнопкÑ). Ðо ÑÑо не ознаÑаеÑ, ÑÑо ÑеакÑÐ¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ð° бÑÑÑ Ð¾Ð´Ð½Ð¾Ð¼Ð¾Ð¼ÐµÐ½Ñной. Ð Ñо вÑемÑ, как задеÑжка в 100Ð¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑзваÑÑ ÑÑвÑÑво беÑÑвÑзноÑÑи дейÑÑвий полÑзоваÑÐµÐ»Ñ Ð¸ ÑеакÑии ÑиÑÑемÑ, плавнÑй пеÑÐµÑ Ð¾Ð´ Ð¼ÐµÐ¶Ð´Ñ ÑоÑÑоÑниÑми за вÑÐµÐ¼Ñ Ð² 100-200Ð¼Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð·Ð°Ð¼ÐµÑиÑÑ, ÑÑо взаимодейÑÑвие наÑалоÑÑ Ð¸ обÑабаÑÑваеÑÑÑ. ÐÑли оÑÐ²ÐµÑ Ð½Ð° дейÑÑвие полÑзоваÑÐµÐ»Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÐµÑ Ð±Ð¾Ð»ÑÑе 100мÑ, пÑедоÑÑавÑÑе некоÑоÑÑÑ ÑеакÑиÑ, коÑоÑÐ°Ñ ÑÐºÐ°Ð¶ÐµÑ Ð¿Ð¾Ð»ÑзоваÑелÑ, ÑÑо взаимодейÑÑвие Ñже ÑлÑÑилоÑÑ Ð¸ обÑабаÑÑваеÑÑÑ.