ΡΠ΅Π»ΠΈz Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° (Browser Python) Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Π½ Π΅Π·ΠΈΠΊ Python 3 Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½Π° Π½Π° ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Python Π²ΠΌΠ΅ΡΡΠΎ JavaScript Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° ΡΠ΅Π±. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Python ΠΈ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠΈΡ BSD. ΠΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΎ Ρ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
Π‘Π²ΡΡΠ·Π²Π°ΠΉΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ , ΡΠ΅Π± ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π·ΠΈΠΊΠ° Python Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠ°ΠΉΡΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΠΏΡΠΈΠ»Π°Π³Π°ΡΠ° Python Π²ΠΌΠ΅ΡΡΠΎ JavaScript. ΠΠ° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° Python ΠΊΠΎΠ΄ Π² ΡΡΡΠ°Π½ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π³ <script> Ρ mime ΡΠΈΠΏ Β«text/pythonΒ». ΠΠΎΠΏΡΡΠΊΠ° ΡΠ΅ ΠΊΠ°ΠΊΡΠΎ Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π² ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ (<script type=Β»text/pythonΒ» src=Β»test.pyΒ»>). ΠΡ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΡΡΠ±ΠΈΡΠΈΡΡΠ° Π½Π° DOM.
Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π° Python ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ DOM ΠΈ JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ°ΡΠΎ jQuery, D3, Highcharts ΠΈ Raphael. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° CSS ΡΡΠ΅ΠΉΠΌΠΎΠ²ΠΎΡΠΊΠΎΠ²Π΅ Bootstrap3, LESS ΠΈ SASS.
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Python ΠΊΠΎΠ΄ ΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²Π΅ <script> ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ³Π΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Brython ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ brython(), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ «<body onload="»brython()»">». ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Python ΠΊΠΎΠ΄Π° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΌ JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Python ΠΊΠΎΠ΄ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π² asm.js ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ CPython, Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° JavaScript).
ΠΡΠ°ΠΉΠ½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠ² Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π² ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠΈ Python ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π΄ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° CPython. ΠΠ°Π±Π°Π²ΡΠ½Π΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΡΠ°ΠΌΠΎ Π½Π° Π΅ΡΠ°ΠΏΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, Π½ΠΎ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ JavaScript ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (Brython Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° JavaScript Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΡΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° Python).
<script type=Β»text/pythonΒ»>
import time
import math
from browser import document
import browser.timer
content = document[Β«contentΒ»]
β¦
canvas = content.select_one(Β«.clockΒ»)
if hasattr(canvas, βgetContextβ):
ctx = canvas.getContext(Β«2dΒ»)
browser.timer.set_interval(set_clock, 100)
show_hours()
else:
content.select_one(β.navig_zoneβ).html = Β«canvas Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Β»
<\/script>
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
