Liberigo de Brython 3.9, efektivigoj de la Python-lingvo por TTT-legiloj

eldonita projekteldono Brython 3.9 (Retumilo Python) kun efektivigo de la programlingvo Python 3 por ekzekuto ĉe la retumila flanko, permesante al vi uzi Python anstataŭ JavaScript por evoluigi skriptojn por la Reto. La projektkodo estas skribita en Python kaj distribuita de sub BSD-licenco. La nova eldono estas rimarkinda pro sia kongruo kun python 3.9 kaj ĝisdatigi la norman bibliotekon.

Konektante bibliotekojn brython.js и brython_stdlib.js, TTT-programisto povas uzi Python-lingvo por difini la logikon de la retejo ĉe la klienta flanko, uzante Python anstataŭ JavaScript. Por inkluzivi Python-kodon sur paĝoj, uzu la etikedon с mime-типом «text/python». Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (). Из скрипта предоставляется полный доступ к элементам и событиям DOM.
Krom aliro al la Python-norma biblioteko, ĝi ofertas specialigitajn bibliotekojn por interagado kun la DOM kaj JavaScript-bibliotekoj kiel jQuery, D3, Highcharts kaj Raphael. La uzo de CSS-kadroj Bootstrap3, LESS kaj SASS estas subtenata.

Efektivigante Python-Kodon el Blokoj производится через предварительную компиляцию этого когда, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «». На основе Python кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js ofertas CPython-interpretilon kompilitan en asm.js por ekzekuti Python-kodon en la retumilo, kaj Skulpt efektivigas interpretilon en JavaScript).

Ĝenerale agado de plej multaj operacioj en Python-skriptoj enkonstruitaj en retpaĝoj proksime al CPython-agado. La prokrasto okazas nur en la kompila stadio, sed por forigi ĝin, la kapablo ŝargi antaŭkompilitan JavaScript-kodon estas provizita, kiu estas uzata por akceli la ŝarĝon de la norma biblioteko (Brython provizas iloj krei JavaScript-bibliotekojn bazitajn sur Python-moduloj).

importa tempo
importi matematikon

de retumilo importdokumento
importi retumilon.timer

enhavo = dokumento["enhavo"]

...

kanvaso = enhavo.select_one (".horloĝo")

if hasattr(kanvaso, 'getContext'):
ctx = canvas.getContext ("2d")

browser.timer.set_interval(agordu_horloĝon, 100)
montri_horojn()
alie:
content.select_one('.navig_zone').html = "kanvaso ne estas subtenata"

fonto: opennet.ru

Aldoni komenton