10 чизеро, ки шумо JavaScript намедонистед, карда метавонад

Муаллиф: Randy Alexander
Санаи Таъсис: 2 Апрел 2021
Навсозӣ: 14 Май 2024
Anonim
Всё, что вы боялись спросить о Security Engineer?
Видео: Всё, что вы боялись спросить о Security Engineer?

Мундариҷа

JavaScript аз рӯзи таваллудаш дар соли 1995 роҳи тӯлониеро тай кардааст. Роҳи душвор барои пур аз нофаҳмӣ, сӯиистифода ва ҷаҳолат. Аммо замонҳо тағир ёфтанд, зеро аз панҷ соли охир JavaScript таваҷҷӯҳи бештар пайдо мекунад. Бо диққати бештар, таҳиягарони бештар воқеан JavaScript-ро истифода мебаранд, онро бо мақсадҳои гуногун истифода мебаранд ва аз зебоии он баҳра мебаранд. Достони классикии "Мурғобии зишт", агар шумо аз ман пурсед.

Дар мақолаи навбатӣ, мо 10 ҳолати истифодаи JavaScript-ро пайдо мекунем, ки аз ҳолатҳои маъмули "дар браузер" фарқ мекунанд, шумо одат кардаед.

01. Вақти овезон аст

Дар хотир доред, ки рӯъёҳои солҳои 80-уми алоқаи видеоӣ ба монанди Facetime?

То он даме, ки ин аз сабаби тақрибан дар ҳама ҷо дастрас будани интернети фарохмаҷро ва истифодаи шадиди нармафзори каме бо номи Skype ҷорӣ шуд, танҳо 20 сол тӯл кашид.

Бо имкониятҳои Adobe's Flash ва кӯшиши Google барои сохтани шабакаи иҷтимоӣ, мо аллакай имкониятҳои алоқаи видеоиро дар браузери худ дорем. Оё ин қобилиятҳоро бидуни истифодаи плагини шахси сеюм, ба монанди Flash, сард нест?


Хушбахтона, фурӯшандаҳои браузер низ чунин фикр мекарданд ва API-и "getUserMedia" -ро дар нармафзори худ татбиқ мекарданд. Ин як қадами аввал барои дастрас кардани дастгоҳҳо ба монанди камераҳо ё микрофонҳо аз браузери шумо буд.

Бо истифода аз Node.js ҳамчун сервер дар паси чунин барнома, интиқоли сигнали видео тавассути ҳаво ба як ё якчанд муштариён ба таври аҷиб осон аст. Бадбахтона, дар вақти навиштани ин, танҳо Chrome ва Opera API -ро дастгирӣ мекунанд, аммо дигарон зуд ба даст хоҳанд овард.

Усули тозатар барои муоширати дуҷониба айни замон танҳо як чизи Chrome аст, ки WebRTC ном дорад. Азбаски WebRTC, мизоҷон барои кушодани каналҳои ҳамсол ба ҳамсол, ки мустақиман муштариро бо муштарӣ пайваст мекунанд, имкон доранд.

Барои шавқовар, татбиқи Photo Booth-и Синдре Сорхусро, ки дар 121 байт анҷом шудааст, санҷед!

var video = document.getElementsByTagName (’video’) [0],
navigator.getUserMedia ('видео', successCallback, errorCallback);

муваффақияти функсияCallback (stream) {
video.src = ҷараён;
}

Хатои функсия Бозгашт (хато) {
console.log (хато);
}


02. $ ('сабук'). FadeIn ();

Платформаи микроконтроллер Arduino як намунаи дараҷаи "берун аз қуттӣ" барои парвандаи истифодаи JavaScript мебошад. Барои касоне аз шумо, ки бо платформаи Arduino ошно нестанд, ин аст як иқтибоси тӯҳфаи машҳур аз вебсайти он:

"Arduino платформаи прототипи электронии сарчашмаи кушода аст, ки дар асоси сахтафзор ва нармафзори фасеҳ, истифодаашон осон асос ёфтааст. Он барои рассомон, тарроҳон, маҳфилҳо ва ҳар касе, ки ба эҷоди ашё ё муҳити интерактивӣ манфиатдор аст, пешбинӣ шудааст."

Худи Arduino танҳо рамзи бо C навишташударо дастгирӣ мекунад, ки ин то ҳол ҳеҷ чизи муҳим нест. Бо чанд сатри C (ба ғайр аз он ки дигарон ин корро барои шумо кардаанд), Arduino метавонад фармонҳоро тавассути порти USB-и худ тавассути протоколи порти силсилавӣ қабул кунад.

Аммо чӣ гуна шумо метавонед ба порти силсилавӣ тавассути JavaScript дастрасӣ пайдо кунед? Равшан аст аз браузер.
Node.js ба наҷот!


Бо талошҳои адвокати ҷомеа Крис Виллиамс, мо китобхонаи порти силсилавии гиреҳ дорем, ки дар он мо метавонем маълумотро тавассути протоколи кӯҳнаи SP фиристем. Ин пешрафти аввалия буд, ки дар асоси китобхона одамони дигар барои қобилияти Ардуино муносибати абстрактӣтар пеш оварданд. Масалан, китобхонаҳои гиреҳӣ-ардуино ва дуино.

Китобхонаи гармтарин ва зеботарин дар атрофи блок барои барномасозии JS, ки Arduino-ро идора мекунад, ҳоло jonny-five мебошад. Блоги Bocoup-ро барои баъзе бухтонҳои гарм, ки онҳо бо платформаи Arduino ва фаровонии плагинҳо кардаанд, санҷед. Инчунин видеои JSConf аз Николай Онкен ва Ёрн Зафферер метавонад ба шумо чарх занад, ки имрӯз бо коди кам чӣ имкон дорад.

03. Дастони шумо барои браузер сохта шудаанд

Диди ояндаи Minority Report (он ҷое, ки онҳо компютерҳоро бо дасти худ идора мекунанд, на мошинҳои зишт) ҳар рӯз наздиктар мешаванд. Як қадами азим дар ин самт нозири Microsoft камтар кӯшиши бозӣ буд, Kinect. Бозии аҷиби шумо шояд фикр кунад, аммо ин бо JavaScript чӣ иртибот дорад ?!

Бо баровардани Kinect SDK-и Microsoft, як гурӯҳ одамон аз пули истифодаи браузер барои Kinect убур карданд. Пеш аз ҳама бачаҳои ChildNodes, ки китобхонаи пурраи кории kinect.js сохтаанд, ки истифодаи Microsoft Kinect дар браузери шумо имкон медиҳад.

Ман тавсия медиҳам, ки намоишҳо ва видеоҳои онҳоро тафтиш кунед, ин як таркиш аст. Аммо як нуқсони калони китобхонаи kinect.js дар он аст, ки дар пушти мизоҷ бояд як барномаи сервери WebSocket кор кунад (ки ин дарвоқеъ Kinect -> C # -> JS ширеш аст).

Якчанд донишҷӯёни шӯҳрати MIT дар ҳалли вайрон кардани ин девор кор мекунанд, ки DepthJS ном дорад,
плагини браузер, ки истифодаи Kinect барои Chrome ва Safari, ҳатто барои сайтҳое, ки барои истифодаи Kinect дар ҳама гуна шакл оптимизатсия нашудаанд, имкон медиҳад. DepthJS дар ҳоли ҳозир дар марҳилаи ибтидоии рушд қарор дорад, аммо бешубҳа, бояд пайгирӣ кунад.

04. Бозиҳои 3D бо gamepad-и шумо назорат карда мешаванд

Оё шумо имрӯз ягон бор кӯшиш кардаед, ки бозии браузери ғайри Flash бозӣ кунед? Имкониятҳои графикӣ аҷибанд, хусусан вақте ки шумо клонҳои бозиро монанди Quake мебинед.

Аммо ҳангоми навозиш кардани ин ашё шумо ҳамеша ба клавиатураи худ ва (ба таври мушаххас) муши сарбаста пайваст мешавед. Ин нуқсони асосӣ аст, алахусус барои бозиҳои экшнӣ, онҳоро воқеан аз браузер бозмедорад.

Агар шумо танҳо контролгари Xbox-ро ба компютери худ васл карда, ба бозӣ кардани бозии браузери дӯстдоштаатон шурӯъ кунед, хуб нест? Ин дигар дурнамои оянда нест, салом ба Gamepad API!

Агар шумо дар атрофи мизи кории худ gamepad дошта бошед, онро ҳозир пайваст кунед ва аз баъзе бозиҳое, ки аллакай Gamepad API -ро истифода мебаранд, лаззат баред. Барномарезии идоракунии вуруд низ як пораи торт аст, ин порчаи рамзро санҷед ё ҳатто беҳтар, онро худатон иҷро кунед:

div id = "gamepads"> / div>
скрипт>
gamepad functionConnected (ҳодиса) {
var gamepads = document.getElementById ("gamepads"),
gamepadId = event.gamepad.id;

gamepads.innerHTML + = "Gamepad Connected (id =" + gamepadId + ")";
}

window.addEventListener ("MozGamepadConnected", gamepadConnected, false);
/ скрипт>

Агар шумо хоҳед, ки дар бораи қобилиятҳои 3D-и браузерҳо маълумоти бештар гиред, Three.js ва Jens Arps 'муҳаррики симулятори 3D Ascent-ро, ки дар болои он сохта шудааст, сарчашмаи кушода кушоед. Марк Ҳэммил ҳушёр бошед, шояд мо ба шумо барои идомаи дигари фармондеҳи Wing ниёз дошта бошем!

05. Дар iPad кор кардани Flash

Ҳамчун як дӯстдори стандартҳои кушода ва мухлиси Apple ман бояд иқрор шавам, ки мехостам ба Apple барои гузоштан надоштани Flash дар iPad ва iPod ташаккур гӯям, ин дарвоқеъ ҳаракати технологияҳои кушодро ба монанди HTML5, CSS3 ва JavaScript оғоз кард.

Ман ҳамчун як корманди оҷонсӣ бояд бигӯям, ки ин воқеан барои муштариёни мо вазъияти бад аст.
Аксари онҳо бояд барои таблиғи оддӣ ё маъракае, ки онҳо оғоз мекунанд, ду маротиба маблағ пардохт кунанд, то мундариҷаи интерактивӣ дар IE7 ё IE8 -и кӯҳна тавассути Flash ва дар браузерҳои муосир, инчунин iDevices тавассути HTML5 кор кунанд.

Polyfilling хусусиятҳои браузерҳои кӯҳна дорои ҳудуди худ мебошад, асосан иҷрои ном. Пас оё имкон надорад, ки Flash дар он iDevices Flashless кор кунад?

Албатта вуҷуд дорад ва албатта он дар JavaScript сохта шудааст.

Порае аз таърих: Соли 2010 Тобиас Шнайдер китобхонаи каме бо номи Гордонро баровард
ки имкон дод, ки файлҳои SWF мустақиман дар браузер кор кунанд. Ин барои файлҳои хурди Flash, ба монанди таблиғоте, ки танҳо функсияҳоро то версияи 2 Flash истифода мекарданд, хеле хуб кор кард, аммо функсияи баландтар тамоман дохил карда нашуд.

Вақте ки Тобиас ба ширкати ueberJS UXEBU пайваст, онҳо идеяи нав пешкаш карданд.
Ҳамин тавр, Бикешед таваллуд шудааст. Bikeshed худ як навъ чаҳорчӯби аниматсияи JavaScript аст, аммо инчунин JavaScript барои Flash ба ҳама чизҳое, ки шумо мехоҳед онро тартибдиҳанда бошад (он адаптер асос ёфтааст, бинобар ин шумо метавонед созгорҳоро барои ҳар чизи дилхоҳе нависед, гарчанде ки рафтори стандарт Flash-ро ба JavaScript тартиб медиҳад) . Он бо Flash 10 ва ActionScript 3 мувофиқ аст, ба вебсайти он нигоҳ кунед, то дар бораи фаровонии хусусиятҳои он ба ҷуз аз тартибдиҳанда маълумоти бештар гиред.

06. Навиштани барномаҳо барои смартфони худ

Навиштани барномаҳои ватанӣ барои муҳити телефони мобилӣ роҳи санглох аст. Он аз қароре оғоз меёбад, ки кадом платформаро дастгирӣ кардан мехоҳед. Оё аризаи шумо дар iPhone ва iPad кор кунад, дастгоҳи мобилии Android, дастгоҳҳои Windows Mobile, Blackberry, weba дар асоси pla ... ва ғайра.

Ҳар яке аз ин платформаҳо API дорад ва асосан забонҳои гуногуни барномасозиро истифода мебарад.
Агар шумо аз ҷангҳои браузер наҷот ёбед, бигзоред ман ба шумо гӯям, ки ин роҳи душвортари мубориза барои ворид шудан аст. Барои таҳиягар сохтани замима барои ҳамаи ин платформаҳо дар вақту буҷа тақрибан ғайриимкон аст.

Пас чӣ бояд кард? Таҳиягарони бештарро киро кунед? Барои барномаҳо бештар пардохт ситонидан лозим аст? Ё усули беҳтареро пайдо кунед, то боварӣ ҳосил кунед, ки пойгоҳи коди шумо дар ҳар дастгоҳ кор мекунад? Ҳамчун аксари шумо, ман муносибати охиринро афзал медонистам.

Аммо ин барномаҳо бояд дар чӣ сохта шаванд? Ҳамаи ин платформаҳо чӣ умумияте доранд? Шояд шумо посухро бидонед, ин браузери веб ва аз ин рӯ муҳаррики JavaScript аст.

Ин идея дар паси Apache Cordova, ки бо номи пешини худ PhoneGap маъруфтар аст.
Кордова як чаҳорчӯби JavaScript мебошад, ки API-ҳои ҳар як муҳити мобилиро ҷамъбаст мекунад ва барои идоракунии ҳамаи онҳо API-и тозаеро нишон медиҳад. Ин ба шумо имкон медиҳад, ки пойгоҳи ягонаи кодро нигоҳ доред, ки шумо онро дар дастгоҳҳои гуногуни мобилӣ месозед ва ҷойгир мекунед.

Захираҳоро дар ин ҷо санҷед, то бифаҳмед, ки чӣ гуна Cordova-ро барои сохтани замимаҳои кликии мобилӣ истифода баред, ки шумо як бор месозед ва дар ҳама ҷо кор хоҳад кард.

07. Руби ва Python-ро дар браузери шумо иҷро кунед

Mozilla, ширкати пуштибони браузери машҳури Firefox, бисёр геикҳоро кор мекунад, ки ин бешубҳа. Яке аз онҳо Алон Закай муҳандиси гурӯҳи тадқиқотии Mozilla аст, ки асбоби заиф бо номи Emscripten сохта буд.

Emscripten ба шумо имкон медиҳад, ки рамзи LLVM-ро гиред, ки онро аз китобхонаҳои C / C ++ асос ёфтан мумкин аст, то JavaScript. Он бо роҳи тартиб додани китобхонаҳо ба коди бит ва сипас, гирифтани коди бит ва ба JavaScript табдил додани он. Бодиккат, аммо ман бо ин чӣ кор карда метавонам, шояд шумо аз худ бипурсед?

Ман барои шумо як саволи ҷавобӣ дорам: оё шумо ягон бор ибораи "Истифодаи CoffeeScript ва Prototype-ро, ки шумо метавонед дар браузер ба кор даровардани Ruby-ро ба даст оред" шунидаед? Не? Парво накунед, зеро ин дигар дуруст нест.

Бо Emscripten шумо метавонед танҳо манбаъҳои Руби -ро гиред, онҳоро ба JavaScript ва voilà табдил диҳед, ва Руби воқеиро дар браузери шумо иҷро кунед! Аммо ин танҳо ба Руби дахл надорад, масалан, Python низ навишта шудааст.

Ё дар браузери h.264 декодер Broadway ро тафтиш кунед. Ин дар асл китобхонаи C ++ навишта шудааст!

Барои дидани якчанд забони барномасозӣ (аз ҷумла Ruby ва Python), ки дар браузери шумо кор мекунанд, ба replace.it гузаред!

08. Навиштани барномаҳои мустақили ОИ

Мо қаблан дар бораи ҳадаф қарор додани платформаҳои сершумори мобилӣ бо ёрии Apache Cordova сӯҳбат карда будем. Бешубҳа, JavaScript-ро на танҳо барои ҳадафи платформаҳои мобилӣ истифода бурдан мумкин аст, балки бо дӯсти деринаи мо бо компютер статсионарӣ низ мубориза бурдан мумкин аст.

Аввалин қарорҳо аз ҷониби бачаҳои Appcelerator бо Titanium Desktop Suite ва аз Adobe платформаи ба таври васеъ истифодашаванда бароварда шуданд.

Аммо чун дӯстдорони манбаи кушода, ки ҳамаи мо ҳастанд, технологияи кушодтар ва дар асоси Node.js чизест, ки мо меҷӯем. Бо app.js шинос шавед! app.js як вебтехнологияи кушод ва барномасози мизи кории Node.js мебошад, ки ба мо имкон медиҳад, ки барномаҳои воқеии мизи кориро бо дастрасии системаи файлӣ, идоракунии равзана ва ғайра нависем. Мо метавонем ба API-ҳои платформаи устувори Node такя кунем ва барномаҳои интерфейси худро бо HTML ва CSS созем. Мисли гармтарин чизҳои нав дар ин рӯйхат дар ин ҷо.

app.js як лоиҳаи хеле ҷавон аст ва аз ин рӯ то имрӯз танҳо Windows ва Linux-ро дастгирӣ мекунад, аммо мувофиқи рӯйхати почтаҳо, дастгирии Mac дар роҳ аст.

09. Иҷрои веб-сервер

Имрӯзҳо, шумо ҳеҷ касро ба ҳайрат намеоред, вақте ки ба онҳо мегӯед, ки вебсайти шуморо вебсервери дар асоси JavaScript хизмат мекунад. Агар шумо ду ё се соли пеш ба ёд оред ва ба веб-таҳиягарон айнан ҳамон чизро гуфта бошед, онҳо эҳтимолан ба шумо механдиданд ё ҳатто бадтар.

Аммо бо муваффақияти бебаҳои Node.js ин хушбахтона ҳоло дур аст. Ин на танҳо одамонро дигар ба ҳайрат намеорад, аз сабаби табиати асинхронии худ Node.js як вундеркинд дар иҷрои аст, алахусус вақте ки сухан дар бораи мушкилоти бисёр пайвастҳои мувозӣ меравад. На танҳо иҷрои он таркиш аст, API воқеан оддӣ низ бисёр таҳиягаронро ҷалб мекунад. Биёед намунаи "Салом Ҷаҳон" -ро аз ҷаҳони гиреҳ тафтиш кунем, ин на танҳо чопи "Салом Ҷаҳон" дар мисоли экран аст, балки веб-сервери http!

var http = талаб ('http');
http.createServer (function (req, res) {
res.writeHead (200, {'Content-Type': 'text / plain'});
res.end ('Салом Ҷаҳон n');
гӯш кунед (1337, ’127.0.0.1’);

Агар шуморо бо ин соддагӣ нафас кашанд, хуб, ман ҳам ба шумо кӯмак карда наметавонам.

Яке аз беҳтарин қисматҳои маъруфияти гиреҳ (ё ҳайф) он аст, ки ширкатҳои калон ба монанди Microsoft воқеан онро дастгирӣ мекунанд, яъне дар Azure Cloud Services!

10. Webscraping ва скриншоттинг

Ҳамин тавр, дар охир, вале на камтар аз он, биёед ба лоиҳае, ки шахсан дӯст медорам, то ба ман иҷозат диҳад, ки озмоишҳои QUnit-и худро дар сатри фармон бе сар гузаронам. PhantomJS як браузери дар сари WebKit сардор бо API асосёфтаи JavaScript (ё CoffeScript) мебошад.

Аммо санҷиши JavaScript ва DOM-и шумо танҳо мавриди истифода барои Phantom нест. Он чизе, ки воқеан маро ба ваҷд меорад, ин қобилияти он барои харошидани вебсайтҳо ва иҷозат додани скриншотҳои он аст!
Бале, шумо дуруст мехонед, бо Phantom шумо метавонед веб-саҳифаҳоро дар форматҳои гуногуни графикӣ бароред ва албатта, он мисли дуздии шириниҳо аз кӯдак осон аст.

Биёед як скриптро дида бароем, ки инро дақиқан иҷро мекунад:

var page = WebPage нав ();
page.open ('http://google.com', function (status) {
page.render ('google.png');
phantom.exit ();
});

Ин танҳо ба шумо лозим аст, ки скриншотро омода кунед ва азбаски он JavaScript мебошад, шумо метавонед низ jQuery -ро истифода баред ва пеш аз скриншот кардани мундариҷаи саҳифаро таҳрир кунед!

Интизор шавед! Бештар ...

Пас, ман умедворам, ки шумо мисли ман ҳайрон шудед, вақте ки ман ҳар яке аз ин асбобҳоро кашф кардам. Ин мақола танҳо сатҳи он чизеро, ки бо JavaScript имрӯза имконпазир аст, харошидааст. Ин қадар чизҳои монанде ҳастанд, ки ба таври комил дар JS Cloud9 навишта шудаанд ё чизҳои амниятии баланд, ки бо он сохта шудаанд (Корти кредитии шумо бо JavaScript сохта шудааст).

Умедворам, ки шуморо рӯҳбаландӣ ҳис мекунад, каме вақт ҷудо кунед ва бо баъзе лоиҳаҳои дар ин ҷо зикршуда бозӣ кунед, ё ҳатто беҳтар аз ин абзорҳоро гиред ва дар атрофи онҳо чизҳои нав созед. Аксари инҳо манбаи кушода мебошанд ва дар он ҷо таҳиягарон ҳастанд, ки дар ҷустуҷӯи кӯмак ба онҳо дар беҳтар кардани корашон ҳастанд, ҳатто агар он танҳо бо истифода аз асбобҳо, ошкор кардани хатогиҳо ва гузориш додани онҳо бошад.

Ҷолиб Дар Сайт
Брендинги шинокунандаи чашм шоҳкори зинда аст
Хондан

Брендинги шинокунандаи чашм шоҳкори зинда аст

Вой! Ин яке барои онҳое нест, ки майли сардард доранд. Аммо, ин барои касоне аз шумост, ки лаппиши рангҳои рангоранг ва навъи брендингро дӯст медоранд, ки аз ҷасур рафтан наметарсанд. Ин як гурӯҳи бре...
Беҳтарин шартномаҳои арзонтарини MacBook Air ва фурӯши MacBook: майи 2021
Хондан

Беҳтарин шартномаҳои арзонтарини MacBook Air ва фурӯши MacBook: майи 2021

Ҷаҳиш ба: MacBook Air M1 аҳдҳо Муомилоти MacBook Air (2020) Муомилоти MacBook Air (2019) Муомилоти MacBook Air (2018) Аҳдҳо дар бораи MacBook (2017) Муомилоти арзони MacBook AirҶаҳиш ба беҳтарин қаро...
Маслиҳатҳои типографӣ
Хондан

Маслиҳатҳои типографӣ

Афсонаи калонтарин дар бораи типография он аст, ки он номусоид ва чолок аст, аммо аҷиб аст, ки ҳеҷ кас ҳеҷ гоҳ ин танқидро дар муҳандисӣ ё меъморӣ дастгирӣ намекунад. Агар шумо дар он соҳаҳо кунҷҳоро ...