ვებ ბრაუზერის ძრავები - რა არის ისინი და რა არის ისინი. რა არის WebKit და როგორ უკავშირდება CSS- ს

  • Გადაცემა

მრავალი ჩვენგანისთვის, WebKit - შავი ყუთი... ჩვენ ვაყრით HTML, CSS, JS და რამდენიმე სურათს და WebKit, რატომღაც ... ჯადოსნურად გვაძლევს ვებ – გვერდს, რომელიც კარგად გამოიყურება და კარგად მუშაობს.
მაგრამ მართლა როგორ ამბობს ჩემი კოლეგა ილია გრიგორიკი :

ვებ ნაკრები არ არის შავი ყუთი. ეს არის თეთრი ყუთი. და არა მხოლოდ თეთრი, არამედ ღია ყუთი

მოდით ვცადოთ გაერკვნენ რამდენიმე რამში:
  • რა არის WebKit?
  • რა არ არის WebKit?
  • როგორ გამოიყენება WebKit ბრაუზერების მიერ?
  • რატომ არ არის ბევრი WebKits ერთი და იგივე?
ახლა, განსაკუთრებით იმ ამბების შემდეგ, რომ Opera– მა WebKit– ზე შეცვალა, ჩვენ გარშემორტყმულია უამრავი WebKit ბრაუზერით და ძნელია იმის თქმა, თუ რა აერთიანებს მათ და სად მიდიან ისინი საკუთარი გზით. ქვემოთ, ვიმედოვნებ, რომ ვცდილობთ გარკვევით განვსაზღვროთ ეს საკითხი. შედეგად, თქვენ შეგიძლიათ უკეთესად ამოიცნოთ ბრაუზერის განსხვავებები, შეცდომები გაუგზავნოთ სწორ ტრეკერს და უფრო ეფექტურად გადაკვეთოთ ბრაუზერის შემუშავება.

სტანდარტული ბრაუზერის კომპონენტები

მოდით ჩამოთვალოთ თანამედროვე ბრაუზერების რამდენიმე კომპონენტი:
  • ანალიზი (HTML, XML, CSS, Javascript- ის ანალიზი)
  • განლაგება
  • ტექსტისა და გრაფიკის გაცემა
  • გამოსახულების დეკოდირება
  • GPU ურთიერთქმედება
  • ქსელზე წვდომა
  • აპარატურის აჩქარება
რომელია საერთო WebKit ყველა ბრაუზერისთვის? საკმაოდ მხოლოდ პირველი ორი.

თითოეული WebKit "პორტი" ახორციელებს სხვა კომპონენტებს თავისებურად. ვნახოთ რას ნიშნავს ეს.

WebKit პორტები

აქ არის მრავალი WebKit "პორტი" და მე გთავაზობთ Aria Hidayat- ს, WebKit ჰაკერებს და მათ. სენჩას დირექტორს უფლება აქვს ამის შესახებ თქვას:

WebKit– ის ყველაზე პოპულარული ასოციაცია ჩვეულებრივ Apple– ის WebKit– ია, რომელიც მუშაობს Mac OS X– ზე (პირველი და ორიგინალური WebKit ბიბლიოთეკა). როგორც გამოგიცნობთ, სხვადასხვა ინტერფეისი ხორციელდება სხვადასხვა ადგილობრივი Mac OS X ბიბლიოთეკის გამოყენებით, ძირითადად ფოკუსირებული CoreFoundation კომპონენტში მაგალითად, თუ თქვენ განსაზღვრავთ ფერადი ბრტყელ ღილაკს სპეციალური მონაკვეთის რადიუსით, WebKit– მა იცის სად და როგორ უნდა დახაზოს ეს ღილაკი, ხოლო ღილაკის საბოლოო გაწევა (როგორც პიქსელები მომხმარებლის მონიტორზე) მოდის CoreGraphics– ზე.

როგორც ზემოთ აღვნიშნე, გამოყენებული CoreGraphics უნიკალურია თითოეული WebKit პორტისთვის. მაგალითად, Chrome for Mac იყენებს Skia– ს.

რაღაც მომენტში, WebKit გადაიტანეს სხვადასხვა პლატფორმებზე, როგორც დესკტოპის, ისე მობილური. ამ ვარიაციას ჩვეულებრივ უწოდებენ "WebKit პორტს". Safari Windows– ისთვის, Apple– მა ასევე დამოუკიდებლად „გადააყენა WebKit“, რათა იმოქმედოს Windows– ზე მისი (შეზღუდული განხორციელება) CoreFoundation ბიბლიოთეკის გამოყენებით.

... მიუხედავად იმისა, რომ Safari for Windows ახლა მკვდარია.
გარდა ამისა, არსებობდა მრავალი სხვა "პორტი" (იხილეთ სრული სია). Google– მა შექმნა და ინარჩუნებს თავის Chromium პორტს. ასევე არსებობს WebKitGtk, რომელიც დაფუძნებულია Gtk + - ზე. Nokia (და ახლა ის Trolltech- მა, რომელმაც იყიდა იგი) ინარჩუნებს WebKit Qt პორტს, რომელიც გახდა პოპულარული, როგორც QtWebKit მოდული.

WebKit– ის ზოგიერთი პორტი

  • Safari
    - Safari ქვეშ OS X და Safari ქვეშ Windows ორი განსხვავებული პორტი
    - WebKit Nightly Build არის Safari– სთვის გამოყენებული Mac– ის „პორტის“ საწყისი კოდის შედგენა, მხოლოდ უფრო ახალი
  • მობილური Safari
    - განვითარდა კერძო ფილიალში, მაგრამ მოგვიანებით გაიხსნა.
    - Chrome iOS– ისთვის (იყენებს Apple– ის WebView– ს; ოდნავ მოგვიანებით განსხვავების შესახებ)
  • Chrome (ქრომი)
    - Chrome for Android (პირდაპირ იყენებს Chromium "პორტს")
    - ქრომი ასევე წარმოადგენს ბრაუზერების საფუძველს: Yandex, Sogou და მალე Opera.
  • Android ბრაუზერი
    - იყენებს უახლეს WebKit კოდს, რომელიც ხელმისაწვდომია გამოსვლის დროს.
  • კიდევ უფრო მეტი პორტი: Amazon Silk, Dolphin, Blackberry, QtWebKit, WebKitGTK +, The EFL პორტი (Tizen), wxWebKit, WebKitWinCE და ა.შ.
სხვადასხვა პორტს შეუძლია ფოკუსირება მოახდინოს სხვადასხვა ამოცანებზე. Mac პორტის ფოკუსია ბრაუზერსა და ოპერაციულ სისტემას შორის გამიჯვნა და Obj-C და C ++ სავალდებულო საშუალებების უზრუნველყოფა გატარების ძრავის ჩასადებად მშობლიურ პროგრამებში. Chromium პორტის ფოკუსირება მთლიანად ხდება ბრაუზერზე. QtWebKit გვთავაზობს, რომ მისი პორტი გამოყენებულ იქნეს cross-platform განაცხადის არქიტექტურასთან ერთად, როგორც გამაძლიერებელი ძრავა.

რა არის საერთო WebKit ყველა ბრაუზერში

პირველ რიგში, მოდით გავეცნოთ საერთო მახასიათებლებს, რომლებიც გამოიყენება ყველა WebKit ბრაუზერში:

თქვენ იცით, რომ ეს სასაცილოა, ამ აბზაცის დაწერას რამდენიმეჯერ ვცდილობდი. და ყოველთვის, როდესაც Chrome- ის გუნდის წევრებმა შეასწორეს, როგორც ნახავთ ...

  1. ასე რომ, უპირველეს ყოვლისა, WebKit აანალიზებს HTML- ს იგივე გზით. გარდა ამისა, გარდა იმისა, რომ Chromium ერთადერთი პორტია, ამჟამად ჩართულია HTML ანალიზის სტრიმინგის მხარდაჭერა.
  2. ... კარგი, მაგრამ HTML– ის ანალიზის შემდეგ, DOM ხე აგებულია იმავე გზით. სინამდვილეში, Shadow DOM ჩართულია მხოლოდ Chromium პორტისთვის, ამიტომ DOM კონსტრუქცია განსხვავდება. ასევე მორგებული ელემენტებისათვის.
  3. ... კარგი, WebKit ქმნის ფანჯრისა და დოკუმენტური ობიექტების ყველას ერთნაირად. მართალია, თუმცა მათ მიერ მოწოდებული თვისებები და კონსტრუქციები შეიძლება დამოკიდებული იყოს მხატვრული დროშების გამოყენებაზე.
  4. ... CSS– ის ანალიზი იგივეა. თქვენი CSS- ის ჭამა და მისი CSSOM- ით გადაკეთება საკმაოდ სტანდარტულია. დიახ, თუმცა Chrome მხარს უჭერს მხოლოდ -webkit- პრეფიქსებს, ხოლო Apple და სხვა ბრაუზერები ამორტიზებული -khtml- და -apple- პრეფიქსით.
  5. … განლაგება… პოზიციონირება? ჰგავს პურს და კარაქს. ყველგან ასეა, არა? ისე უკვე! ქვეპიქსელის განლაგება და მდიდარი განლაგების არითმეტიკა WebKit– ის ნაწილია, მაგრამ განსხვავდება პორტიდან პორტამდე.
  6. სუპერ

ასე რომ, ეს რთულია.

ახლა შევეცადოთ შევაჯამოთ რა არის საერთო WebKit სამყაროში ...

რა არის საერთო თითოეული WebKit პორტისთვის.

  • DOM, ფანჯარა, დოკუმენტი
    Მეტი ან ნაკლები
  • CSSOM
  • CSS თვისების / მნიშვნელობის ანალიზი
    მწარმოებლის პრეფიქსების განსხვავებები
  • HTML ანალიზს და DOM- ის მშენებლობას
    იგივეა, თუ დავივიწყებთ ვებ კომპონენტებს.
  • განლაგება და პოზიციონირება
    Flexbox, Floats, ბლოკის ფორმირების კონტექსტი ... ყველაფერი საერთო
  • მომხმარებლის ინტერფეისის ხელსაწყოები და დეველოპერული საშუალებები, როგორიცაა Chrome DevTools aka WebKit ინსპექტორი.
    მიუხედავად იმისა, რომ გასული აპრილიდან Safari იყენებს საკუთარ Safari- ს ინსპექტორს, არა WebKit- ს, დახურულ წყაროს.
  • ისეთი ფუნქციები, როგორიცაა contenteditable, pushState, File API, SVG– ების უმეტესობა, CSS გარდაქმნის მათემატიკა, ვებ აუდიო API, localStorage
    განხორციელება შეიძლება განსხვავდებოდეს. თითოეულ პორტს შეუძლია გამოიყენოს საკუთარი მეხსიერება localStorage– სთვის და შეუძლია გამოიყენოს სხვა აუდიო API ვებ აუდიო API– სთვის.
ეს ცოტა დამაბნეველი ხდება, მოდით ვცადოთ განვიხილოთ ზოგიერთი განსხვავება.

ახლა, რა არ არის საერთო WebKit პორტებისთვის:

  • GPU– სთან დაკავშირებული ყველაფერი
    - 3D გარდაქმნები
    - WebGL
    - ვიდეოს დეკოდირება
  • ნახაზი 2D ეკრანზე
    - aliasing ტექნოლოგიები
    - SVG და CSS გრადიენტების გაწევა
  • ტექსტის გაცემა და დეფისი
  • ქსელის ტექნოლოგიები (SPDY, წინასწარი გაწევა, WebSocket ტრანსპორტი)
  • JavaScript ძრავა
    - JavaScriptCore ძრავა არის WebKit საცავში. მაგრამ WebKit– ში არის კავშირი როგორც მისთვის, ასევე V8– სთვის.
  • ფორმის ელემენტების გაწევა
  • ვიდეო და აუდიო ნიშნის ქცევა და კოდეკის მხარდაჭერა
  • გამოსახულების დეკოდირება
  • უკან / ნავიგაცია უკან
    - pushState () ნაწილი
  • SSL ფუნქციები, როგორიცაა მკაცრი ტრანსპორტის უსაფრთხოება და საზოგადოებრივი გასაღების პინები
მოდით ვნახოთ ერთი მათგანი: 2D გრაფიკა დამოკიდებულია პორტზე, ჩვენ ვიყენებთ აბსოლუტურად განსხვავებულ ბიბლიოთეკას ეკრანზე გამოსახვისთვის:

ან უფრო დეტალურად რომ ვთქვათ, ახლახანს დამატებული ფუნქცია: CSS.supports () ჩართულია ყველა პორტისთვის, გარდა win და wincairo, რომელთაც არ აქვთ ჩართული css3 პირობითი მახასიათებლები

ახლა ჩვენ ტექნიკურ დეტალებში ვიღებთ ... დროა პედანტი ვიყოთ. ზემოხსენებულიც კი არ არის სრულყოფილი. სინამდვილეში ეს არის WebCore, ის არის საერთო კომპონენტი. WebCore არის განლაგება, გაწევა და DOM ბიბლიოთეკა HTML და SVG– სთვის და ძირითადად რას ფიქრობენ ადამიანები, როდესაც ამბობენ WebKit. მართლაც, "WebKit" ტექნიკურად წარმოადგენს სავალდებულო ფენას WebCore- სა და "პორტებს" შორის, თუმცა ჩვეულებრივ საუბარში ეს განსხვავება მნიშვნელოვნად არ არის მნიშვნელოვანი.

დიაგრამა უნდა დაეხმაროს:

WebKit– ის მრავალი კომპონენტი შეცვლადია (ნაჩვენებია ნაცრისფერში).

მაგალითად, WebKit- ის JavaScript ძრავა, JavaScriptCore, არის ნაგულისხმევი ძრავა WebKit- ში. იგი თავდაპირველად ეფუძნება KJS- ს (KDE- სგან) იმ დღიდან, როდესაც WebKit დაიწყო KHTML ჩანგლის სახით. ამავე დროს, Chromium პორტი გადადის V8 ძრავაზე და იყენებს უნიკალურ DOM კავშირებს.

შრიფტები და ტექსტის გაწევა პლატფორმის ძალიან დიდი ნაწილია. WebKit– ში ტექსტისთვის არსებობს 2 ცალკეული გზა: სწრაფი და მყარი. ორივე მოითხოვს პლატფორმის სპეციფიკურ მხარდაჭერას (ხორციელდება პორტის მხარეს), მაგრამ Fast– მა მხოლოდ უნდა იცოდეს, თუ როგორ უნდა დაბლოკოს გლიფები (რაც WebKit მალავს პლატფორმისთვის), როდესაც რთული მთლიანად უბიძგებს სტრიქონების გაწევას პლატფორმის დონეზე და უბრალოდ ამბობს, რომ დახაზეთ.

”WebKit სენდვიჩს ჰგავს. წინააღმდეგ შემთხვევაში, ქრომის შემთხვევაში, ეს უფრო თაკოს ჰგავს. გემრიელი tacos ვებ ტექნოლოგიებიდან.
დიმიტრი გლაზკოვი, Chrome WebKit ჰაკერი. ვებ კომპონეტებისა და ჩრდილოვანი დომენის ჩემპიონი.

მოდით, გავაფართოვოთ ჩვენი მიმოხილვა, რომ გადავხედოთ რამდენიმე პორტს და რამდენიმე ქვესისტემას. ქვემოთ მოცემულია WebKit– ის ხუთი პორტი, გაითვალისწინეთ, თუ როგორ განსხვავდება ხელსაწყოთა ნაკრები თითოეული, საერთო კომპონენტების მიუხედავად:

Chrome (OS X) Safari (OS X) QtWebKit Android ბრაუზერი Chrome- ისთვის iOS
გაწევა სკია CoreGraphics QtGui Android სტეკი / Skia CoreGraphics
ქსელში ჩართვა ქრომის ქსელის დასტა CF ქსელი QtNetwork Chromium- ის ქსელის დასტის ჩანგალი ქრომის დასტა
შრიფტები CoreText Skia– ს საშუალებით CoreText Qt შინაგანი Android სტეკი CoreText
JavaScript V8 JavaScriptCore სს (V8 გამოიყენება Qt- ის სხვაგან) V8 JavaScriptCore (JITting– ის გარეშე) *

* სქოლიო Chrome– ის შესახებ IOS– ისთვის. ის იყენებს UIWebView– ს, როგორც ალბათ იცით. შესაბამისად UIWebView– ის შესაძლებლობებთან, ეს ნიშნავს, რომ მას შეუძლია გამოიყენოს მხოლოდ იგივე გაწევის ძრავა, როგორც Mobile Safari, JavaScriptCore (არა V8) და ერთი ძაფიანი მოდელი. ამასთან, ზოგიერთი კოდი ნასესხებია Chromium– ისგან, როგორიცაა ქსელი, სანიშნეების სინქრონიზაციის ინფრასტრუქტურა, omnibox, მეტრიკა და ავარიული შემთხვევის შესახებ შეტყობინება. (ასევე, JavaScript ძალიან იშვიათად წარმოადგენს მობილური ტელეფონის გადაჭიმვას, რომ JITting შემდგენლის ნაკლებობას მინიმალური გავლენა აქვს.)

კარგი, მაშ სად მოვედით?

ასე რომ, ახლა ყველა WebKit სრულიად განსხვავებულია. Მეშინია.

არ ღირს! WebKit– ის განლაგებატესტის გაშუქება დიდია. (ბოლოს დაითვალა 28,000 ტესტი) და არა მხოლოდ არსებული ფუნქციების, არამედ ყველა აღმოჩენილი რეგრესიისთვის. სინამდვილეში, ყოველთვის, როდესაც შეიტყობთ ახალ ან "საიდუმლო" DOM \u200b\u200b/ CSS / HTML-5 მახასიათებლებს, "layoutTest" სატესტო პაკეტებს, როგორც წესი, აქვთ მინიმალური დემო დემო.

გარდა ამისა, W3C ცდილობს შეადგინოს ტესტირების კომპლექტი. ეს ნიშნავს, რომ შეიძლება ველოდოთ როგორც WebKit პორტებს, ისე ყველა სხვა ბრაუზერს, რომ ტესტირება მოხდეს იგივე საცდელი კომპლექტით, რაც ხელს შეუწყობს უცნაურობების შემცირებას და უფრო მეტი ურთიერთქმედების ქსელს. ყველა მათთვის, ვინც ყველაფერს აკეთებს იმისათვის, რომ დაესწროს Test The Web Forward ღონისძიებას ... გმადლობთ!

ოპერა ახლახან WebKit- ში გადავიდა. რა მოუვა ამას?

რობერტ ნიმანმა და რობ ჰოუკსმა უკვე ისაუბრეს ამ თემაზე, მაგრამ დავამატებ, რომ განცხადების ერთ-ერთი მნიშვნელოვანი ნაწილი იყო ოპერა გადადის Chromium- ზე... ეს ნიშნავს WebGL, ტილო, HTML5 ფორმებს, 2D გრაფიკის განხორციელებას, ახლა ეს ყველაფერი იგივე იქნება Chrome- სა და Opera- ში. იგივე API და დაბალი დონის განხორციელება. მას შემდეგ, რაც Opera დაფუძნებულია Chromium- ზე, შეიძლება იგრძნოთ, რომ თვლით მუშაობას და შეამოწმებთ თუ არა თავსებადობას Opera და Chrome- ზე.
აქვე უნდა აღვნიშნო, რომ ყველაფერი ოპერის ბრაუზერები გადაითარგმნება Chromium- ზე. ეს არის ოპერა, Windows, Mac, Linux და Opera Mobile (სრულფასოვანი მობილური ბრაუზერი). მაშინაც კი, Opera Mini, წვრილი კლიენტი, გადაინაცვლებს მიმდინარე პრესტოზე დაფუძნებულ რენდერულ ფერმას სხვა Chromium– ზე.

... და WebKit– ის ღამის აგება. Რა არის ეს?

ეს არის WebKit, რომელიც მუშაობს იმავე კოდზე, როგორც Safari (თუმცა ზოგიერთი შიდა ბიბლიოთეკა შეიცვალა). ძირითადად, Apple მართავს მას, ამიტომ ქცევა და მახასიათებლების ნაკრები ემთხვევა იმას, რასაც Safari- ში ნახავთ. ხშირ შემთხვევაში, Apple არის კონსერვატიული, როდესაც საქმე ეხება იმ ფუნქციებს, რომლებსაც სხვა პორტები ახორციელებენ ან ექსპერიმენტებს უტარებენ. ყოველ შემთხვევაში, ანალოგების გამოსაყენებლად, იფიქრეთ, რომ ... Safari– ისთვის WebKit– ის ღამის აგება Chromium– ს ჰგავს Chrome- სთვის. დაამატეთ თეგები

Android და iPhone - ბრაუზერის ომები

ნაწილი 1. WebKit შემორბის სამაშველო

ქსელის სტატუსის მონიტორინგზე პასუხისმგებელი ბრაუზერის პროგრამის შექმნა

შინაარსის სერიები:

საერთო ჯამში, iPhone და Android პლატფორმებს 100 000-ზე მეტი პროგრამა აქვთ, რომლებიც შეგიძლიათ ჩამოტვირთოთ სხვადასხვა წყაროდან. ეს ეხება "მშობლიურ" პროგრამებს, ე.ი. პროგრამები, რომლებიც შემუშავებულია და აგებულია შესაბამისი SDK– ის გამოყენებით, შემდეგ კი დამონტაჟებულია მობილურ მოწყობილობაზე. ასეთი "მშობლიური" პროგრამები საშუალებას იძლევა მობილური მოწყობილობის ტექნიკური შესაძლებლობების ეფექტურად განხორციელებას, მათ შორის უკაბელო ქსელების მხარდაჭერას, Bluetooth და მონაცემთა შენახვას, აქსელერომეტრის ან კომპასის ფუნქციებს და სხვა ტექნოლოგიურ საოცრებებსა და ინოვაციებს, რაც მობილური მოწყობილობებს მომხმარებლებისთვის იმდენად მიმზიდველს ხდის. "მშობლიური" აპლიკაციების პოპულარობა iPhone და Android პლატფორმებისთვის ძალიან მაღალია, მაგრამ გარდა ამისა, მობილური მოწყობილობები მრავალ შესაძლებლობას იძლევა ვებ-პროგრამების განვითარებისათვის. მობილური ტექნოლოგიები ბავშვობიდან გავიდა და მათთან ერთად მობილურმა ინტერნეტმა მიაღწია გარკვეულ სიმწიფეს.

ეს სტატია არის პირველი ორნაწილიანი სერიიდან iPhone და Android პლატფორმებისთვის ბრაუზერის აპლიკაციების შემუშავების შესახებ. ამ სერიის მიზანია მკითხველს გააცნოს საკუთარი მობილური ვებ – პროგრამების შექმნის ძირითადი პრინციპები. მობილური აპლიკაციების შესაძლებლობები არ შემოიფარგლება ვებ – გვერდის მართვით მობილურ მოწყობილობაზე. ჩვენ გავითვალისწინებთ მობილური აპლიკაციების შემუშავებისას გამოყენებულ ძირითად ტექნოლოგიებსა და მიდგომებს, რაც შესაძლებელს გახდის პროგრამული უზრუნველყოფის ამ ნაწილის ცალკე დამოუკიდებელ დისციპლინად გამოყოფას.

ვებ პლატფორმის პოპულარობა განპირობებულია იმით, რომ მისი გამოყენება საშუალებას გაძლევთ მოაგვაროთ მრავალი პრობლემა, რომლებიც ტრადიციულად აწუხებთ დეველოპერებსა და სისტემის ადმინისტრატორებს. Მათ შორის:

  • ინსტალაციის პრობლემები: ვებ პროგრამების ინსტალაცია მარტივია - უბრალოდ დააინსტალირეთ ან დააკოპირეთ ისინი სერვერზე და უთხარით თქვენს კლიენტებს, თუ რომელი URL მიუთითეთ ბრაუზერში.
  • მასშტაბის შეცვლის საკითხები: ვებ – პროგრამები ადვილად ასწორებენ სერვერების ჯგუფს მაღალპროდუქტიული მონაცემთა ცენტრში და იყენებენ ვებ – გვერდების მართვის ინსტრუმენტებს, რომლებიც ემსახურება პროგრამებს.
  • მონაცემთა დაარქივება და აღდგენის გამოწვევები: ვებ – პროგრამები იყენებენ მონაცემთა ცენტრალიზებულ მაღაზიას, რაც ამარტივებს კატასტროფის აღდგენის ამოცანას.
  • მომხმარებლის ინტერფეისის მოსაზრებები: HTML, Cascading Style Sheets (CSS), JavaScript და გრაფიკის კომბინაცია ქმნის მდიდარ ინტერფეისს, რომელიც ფუნქციონირებით და გარეგნულად მნიშვნელოვნად აღემატება მშობლიურ SDK– სთან შექმნილ ინტერფეისებს. როგორც წესი, ამ უკანასკნელს არ შეუძლია უზრუნველყოს სათამაშო პროგრამების არსებობის სრულყოფილი ეფექტი და არ იძლევა გარანტიას საჭირო ფუნქციონირებისთვის ინტერაქტიული საინფორმაციო ტერმინალებისთვის.
  • გამოყენების სიმარტივე: უმეტეს პროგრამებს ესაჭიროებათ მარტივი, ადვილად გამოსაყენებელი ინტერფეისის ელემენტები, რათა ყოველდღიური ოპერაციები გახდეს მარტივი.

ინტერნეტ აპლიკაციების განაწილების მოდელის ყველაზე დამაჯერებელი ასპექტი ის არის, რომ იგი პროგრამულ უზრუნველყოფას აქცევს ერთგვარ სააბონენტო სერვისად, რაც პროგრამული უზრუნველყოფის ორმხრივად სასარგებლო გზაა. "Როგორ?" - გეკითხებით. მოდი, უფრო დეტალურად გავეცნოთ ამ საკითხს.

ინტერნეტით დაფუძნებული პროგრამული დისტრიბუციის მოდელი საშუალებას აძლევს მომხმარებლებს, მოსინჯონ პროდუქტი შეძენის წინ, მინიმალური რისკითა და მინიმალური ღირებულებით. თუ კლიენტს მოსწონდა საცდელი ვერსია, მაშინ მხოლოდ მას სჭირდება პროგრამული პროდუქტის შემდგომი გამოყენებისათვის გადახდა გადახდა საკრედიტო ბარათით (ან PayPal სისტემის გამოყენებით). უფრო მეტიც, პროგრამული უზრუნველყოფა, როგორც სერვისული (SaaS) მოდელი, მომხმარებლებს სთავაზობს პროგრამული უზრუნველყოფის შესაძენად მოსახერხებელ და მომგებიან გზას მნიშვნელოვანი წინასწარი ხარჯების გარეშე, რაც გარანტიას იძლევა ინვესტიციის დაბრუნებას გამოყენების პირველი თვის განმავლობაში და არა შორეულ მომავალში.

ფაქტია, რომ მობილური ბრაუზერების მხარდაჭერა პრაქტიკულად არ არსებობდა. სიტუაცია მკვეთრად შეიცვალა WebKit– ის ტექნოლოგიის გაჩენისთანავე, რომელმაც iPhone– ის წყალობით დამაჯერებლად დაიკავა ადგილი მობილური მოწყობილობების სფეროში.

რამდენიმე წლის განმავლობაში, iPhone პლატფორმა გახდა მსოფლიოს ნომერ პირველი ვებ-კლიენტი. რატომ? იმის გამო, რომ WebKit– მა, საიმედო ინტერნეტთან დაკავშირებამ, მობილური სერვისების ვებ – სერვისების გამოყენება ბევრად უფრო ეფექტურად გახადა შესაძლებელი, ვიდრე სხვა თანამედროვე ბრაუზერში. სხვა მობილურმა მოთამაშეებმა ასევე გაითვალისწინეს ახალი ტექნოლოგია და ახლა მთელი ბაზარი შეიძლება დაიყოს კომპანიებად, რომლებიც იყენებენ WebKit– ს, კომპანიებს, რომლებიც აპირებენ WebKit– ის გამოყენებას და კომპანიებს, რომლებიც გამოდიან საბაბით, რომ არ გამოიყენონ WebKit.

რა არის WebKit?

WebKit და HTML5

WebKit არის ბრაუზერის ძრავა, რომელიც გამოიყენება iPhone Safari- ზე Mobile Safari ბრაუზერის მხარდასაჭერად და Android პლატფორმაზე ბრაუზერის მხარდასაჭერად. რა თქმა უნდა, WebKit გამოიყენება სხვა მობილურ მოწყობილობებშიც, მაგრამ ამ სტატიის მიზნებისათვის ჩვენ ყურადღებას გავამახვილებთ iPhone და Android პლატფორმებზე.

WebKit არის ღია კოდის პროექტი, რომელიც წარმოიშვა K Desktop Environment (KDE) - ის განვითარებიდან. ეს არის WebKit პროექტი, რომლის დამსახურებაა მობილური მოწყობილობებისთვის თანამედროვე ვებ – პროგრამები. მობილური მოწყობილობის ტექნოლოგიური და დიზაინის მახასიათებლები, რა თქმა უნდა, მნიშვნელოვან როლს ასრულებს, მაგრამ მობილური მომხმარებლები, პირველ რიგში, ინტერესით არიან დაინტერესებულნი. თუ მობილური მოწყობილობა უზრუნველყოფს ინტერნეტ – შინაარსის მხოლოდ მცირე ნაწილზე წვდომას, მაშინ ნაკლებად სავარაუდოა, რომ შეძლოს იგი ყველაზე პოპულარული მოწყობილობების ზედა სიაში მოხვედრას.

უმეტესობა ჩვენგანს სრულყოფილი ცხოვრებით ცხოვრება ურჩევნია: თუ ლაპტოპზე ვებსაიტი გავხსენით სახლში ჯდომის დროს, ველოდებით იმავე შინაარსს, როდესაც ამ ვებსაიტს ვეწვევით მატარებელში. შინაარსი მობილური აპების მთავარი პრობლემაა. სადაც არ უნდა ვიყოთ და რას ვაკეთებთ, ჩვენთვის საჭირო მონაცემებზე წვდომა გვჭირდება. WebKit ტექნოლოგია აწვდის მდიდარ შინაარსს iPhone და Android პლატფორმებზე.

აღსანიშნავია, რომ WebKit ასევე გამოიყენება საგამომცემლო კომპიუტერებზე, მაგალითად, Safari ბრაუზერში, რომელიც არის Mac OS X პლატფორმის მთავარი ბრაუზერი. განიხილება თუ არა სამუშაო ვერსია ან ბრაუზერის ძრავა iPhone– ის ან Android– ისთვის, WebKit რჩება ყველაზე მოწინავე ტექნოლოგიად. HTML და CSS მხარდაჭერა. სინამდვილეში, WebKit მხარს უჭერს CSS სტილებს, რომლებიც ჯერ არ არის გადმოცემული ბრაუზერების მიერ სხვა ძრავებზე - მაგალითად, შეგიძლიათ მიუთითოთ HTML5 სპეციფიკაციით განსაზღვრული მთელი რიგი თვისებები.

HTML5 არის წინასწარი ტექნიკური სპეციფიკაციების ნაკრები, რომლებიც განსაზღვრავს ბრაუზერზე დაფუძნებულ ტექნოლოგიებს, როგორიცაა კლიენტის მხრიდან მონაცემთა შენახვა SQL მხარდაჭერით, გადაადგილებით, გარდაქმნით და ა.შ. HTML5 დაზუსტება ჯერ არ არის დასრულებული, მაგრამ მას შემდეგ რაც საფუძვლები ნათლად ჩამოყალიბდება და განხორციელდება ბრაუზერებში უმეტეს პლატფორმებზე, ვებ – პროგრამების მოკრძალებული დასაწყისი გახდება დავიწყებული წარსული. ვებ აპლიკაციების შემუშავება მნიშვნელოვან სეგმენტს დაიკავებს პროგრამული უზრუნველყოფის შემუშავებაში და ეს ეხება არა მხოლოდ პროგრამებს დესკტოპის ბრაუზერებისთვის, არამედ მობილური ბრაუზერებისათვის. ქვეპროდუქტიდან მობილური პროგრამები გახდება მთავარი საქონელი ვებ პროგრამების ბაზარზე.

მობილური ვებ – პროგრამების შემუშავების თვისებები

მას შემდეგ რაც გადაწყვეტილებას მიიღებთ ვებდიზაინ ტექნოლოგიების დაუფლების შესახებ, თქვენს ხელთ არსებული ინსტრუმენტები ძალიან ცოტაა. უპირველეს ყოვლისა, პროგრამა შეიძლება შეიქმნას პირდაპირ სერვერზე, როგორც ფაილი, რომელიც შეიცავს HTML, CSS და JavaScript კოდებს. ამ შემთხვევაში, HTML შინაარსის მიწოდება შესაძლებელია სტატიკური HTML ფაილების სახით, ან მისი გენერირება შესაძლებელია სერვერის მხარეზე მომუშავე სხვადასხვა ტექნოლოგიების გამოყენებით, მაგალითად, PHP, ASP.NET, Java Servlets და ა.შ. ნებისმიერ შემთხვევაში, წერტილიდან ამ სტატიაში განხილული საკითხების თვალსაზრისით, ეს ყველაფერი HTML კოდში მოდის, აქ ყველაზე მნიშვნელოვანი საკითხია ის, რომ WebKit ტექნოლოგია საშუალებას აძლევს ბრაუზერებს HTML გახადონ მობილური მოწყობილობებით.

მობილური აპლიკაციის (iPhone ან Android) ვებ – პროგრამის გასაშვებად, მომხმარებელმა უნდა გახსნას ბრაუზერი და შეიყვანოს შესაბამისი სერვისის URL, მაგალითად: http://yourcompanyname.com/applicationurl.

ამავე დროს, შემოთავაზებული მობილური ვებ – პროგრამების სპექტრი საკმაოდ ფართოა: სტანდარტული ვებ – გვერდიდან მობილური ვებ – პროგრამით, რომელიც შემუშავებულია სპეციფიკური მობილური პლატფორმისთვის.

სტანდარტული საიტების ჩვენება

WebKit ძრავა, შერწყმული iPhone და Android პლატფორმების ინტუიტიურ და მოსახერხებელ ინტერფეისთან, საშუალებას გაძლევთ იხილოთ თითქმის ნებისმიერი ვებსაიტი თქვენს მობილურ მოწყობილობაზე. ვებ – გვერდები საკმაოდ სწორად არიან ნაჩვენები, განსხვავებით წინა თაობის მობილური ბრაუზერებისგან, რომლებიც თვითნებურად ატარებდნენ შინაარსის ნაწილებს ან საერთოდ არ აჩვენებდნენ. როდესაც გვერდები იტვირთება WebKit- ის ჩართულ ბრაუზერში, გვერდის შინაარსი ჩვეულებრივ მასშტაბდება. ამ შემთხვევაში, მასშტაბი შეირჩევა ისე, რომ მთელი გვერდი ეკრანზე განთავსდეს, თუმცა ძალზე შემცირებული, ხშირად წაუკითხავი ფორმით, როგორც ეს ნაჩვენებია ნახაზზე 1. ამასთან, გვერდის გადახვევა, გაფართოება, გადაადგილება შესაძლებელია ყველა შინაარსის ელემენტის მოსახერხებელი წვდომისთვის. ... სტანდარტულად, ბრაუზერი იყენებს 980px სიგანის ფანჯარას.

მიუხედავად იმისა, რომ ბრაუზერის ფანჯარაში ვებ – გვერდის სრული ჩვენება მნიშვნელოვნად აუმჯობესებს წინა თაობის ბრაუზერების გამოცდილებას, თანამედროვე მობილური ტექნოლოგიების შესაძლებლობები ამით არ შემოიფარგლება.

მობილური ინტერნეტისთვის შესაფერისი ვებ – გვერდები

თუ გსურთ თქვენი ვებ – გვერდი ხელმისაწვდომი იყოს როგორც მობილური მომხმარებლებისთვის, ასევე ზოგადი ვებ – მომხმარებლებისთვის, მობილური ვებ – აპლიკაციების კიდევ რამდენიმე ოპტიმიზაციის ვარიანტია გასათვალისწინებელი.

მიუხედავად იმისა, რომ WebKit– ს შეუძლია ვებ – გვერდის სწორად ჩვენება მობილური მოწყობილობის ეკრანზე, განსხვავებაა მოწყობილობებზე, რომლებიც იყენებენ მაუსს, მაგალითად, ლეპტოპს ან დესკტოპ კომპიუტერებს, და სენსორულ მოწყობილობებს, როგორიცაა iPhone ან Android სმარტფონები. სენსორული მოწყობილობები გამოირჩევა "დაწკაპუნების" არეალის ფიზიკური ზომით, კურსორის ნებისმიერი ელემენტის გადაფარვის ფუნქციის არარსებობით და მოვლენების სხვა თანმიმდევრობით. ამრიგად, თუ გსურთ ვებსაიტის შექმნა, რომელიც მოსახერხებელია როგორც ზოგადი, ასევე მობილური მომხმარებლებისთვის, უნდა გაითვალისწინოთ მობილური მოწყობილობების შემდეგი მახასიათებლები:

  • IPhone და Android ბრაუზერებს შეუძლიათ მთლიანი ვებ – გვერდის ჩვენება საკმაოდ წაკითხული ფორმით - ამ ბრაუზერების ჩვენების ხარისხი მნიშვნელოვნად მაღალია, ვიდრე სტანდარტული მობილური ბრაუზერების - ასე რომ, ნუ იჩქარებთ თქვენი საიტის დიზაინის გამარტივებას.
  • თითის წვერების ზომა გაცილებით მეტია, ვიდრე მაუსის მაჩვენებლის ზომა. გაითვალისწინეთ ეს ფაქტორი თქვენი საიტის სანავიგაციო ელემენტების შემუშავებისას. არ მოათავსოთ ბმულები ერთმანეთთან ძალიან ახლოს, წინააღმდეგ შემთხვევაში მომხმარებელი ვერ შეძლებს დააწკაპუნოს ერთ ბმულზე მომიჯნავეზე მოხვედრის გარეშე.
  • Hover- ზე ნაჩვენები ელემენტები არ იმუშავებს მობილური მოწყობილობებისთვის. მომხმარებელს უბრალოდ არ შეუძლია თითის "გადატანა" რომელიმე ელემენტზე ისე, როგორც მაუსის კურსორი.
  • მაუსის ღილაკზე დაჭერით და დაჭერით, მაუსის დაჭერით და ა.შ. განსაზღვრული მოვლენები სენსორულ ეკრანებზე განსხვავებულად ხორციელდება. ზოგიერთმა ამ მოვლენამ შესაძლოა მობილური მოწყობილობებზე იმუშაოს, მაგრამ ზოგადად, არ უნდა ელოდოთ, რომ მობილური ბრაუზერი და დესკტოპის ბრაუზერი შეასრულებენ მოქმედებების იგივე თანმიმდევრობით.

ამ ასპექტების დეტალური განხილვა შეგიძლიათ ნახოთ სტატიაში „ iPhone მოქმედებაში"(იხილეთ სექცია). ამ სტატიაში ჩვენ შემოვიფარგლებით მხოლოდ WebKit– ის უპირატესობებზე და არა მის ნაკლოვანებებზე.

გაითვალისწინეთ ყველაზე აშკარა პრობლემა, რომელსაც აწყდებიან iPhone ან Android მომხმარებლები ვებ – გვერდებზე წვდომისას, კერძოდ, ეკრანის შეზღუდული ზომა. სინამდვილეში, თანამედროვე მობილური მოწყობილობის ეკრანი არის 320x480 ან 480x320, იმ პირობით, რომ მომხმარებელი ამჯობინებს ვებ – გვერდის ნახვას ლანდშაფტის კონფიგურაციაში. როგორც ხედავთ ნახაზზე 1, WebKit– ს შეუძლია სწორად აჩვენოს ვებ – გვერდი, რომელიც შექმნილია სტანდარტული დესკტოპის კომპიუტერებისთვის. ამასთან, ვებ-გვერდის მასშტაბის გასადიდებლად, ტექსტი შეიძლება ძალიან მცირე იყოს წასაკითხად, ამიტომ მომხმარებელს მოუწევს გადახვევა, პანირება და მასშტაბირება, სანამ ტექსტს წაიკითხავს. როგორ გავუმკლავდეთ ამ შეზღუდვას?

გვერდის შესაქმნელად უმარტივესი გზა, რომელიც თანაბრად კარგად გამოჩნდება მობილური ბრაუზერის ფანჯარაში და სამუშაო მაგიდის ბრაუზერის ფანჯარაში, არის მეტა თეგის მორგება ხედვის პორტი.

მეტა ტეგი არის HTML ნიშანი, რომელიც მოთავსებულია HTML დოკუმენტის თავში. Viewport თეგის გამოყენების უმარტივესი მაგალითი ასე გამოიყურება: ... როდესაც ამ მეტა თეგს დაამატებთ HTML გვერდს, მისი ჩვენება მობილური ბრაუზერის ფანჯარაში მასშტაბირდება ყველაზე ოპტიმალური გზით (იხ. სურათი 2). ბრაუზერები, რომლებიც მხარს არ უჭერენ ხედვას, უბრალოდ უგულებელყოფენ ამ ნიშანს.

ზოგიერთ შემთხვევაში, სასარგებლოა ფანჯრის მასშტაბის პარამეტრების წინასწარ განსაზღვრა, როგორც ეს ნაჩვენებია ნახაზზე 3.

სკალირების სპეციფიკური ვარიანტების დასადგენად მიუთითეთ ხედის მეტა-ტეგის შინაარსის ატრიბუტის ზუსტი მნიშვნელობა: ... საწყისი მასშტაბის პარამეტრის მნიშვნელობის შეცვლით, სურათი შეიძლება შემცირდეს ან გაიზარდოს. IPhone და Android პლატფორმებისათვის უმჯობესია გამოიყენოთ მნიშვნელობები 1.0-დან 1.3-მდე. Viewport მეტა ტეგი ასევე მხარს უჭერს მინიმალურ და მაქსიმალურ მასშტაბირებას, რაც ზღუდავს მომხმარებლის შესაძლებლობას, მასშტაბის დატვირთვა მოახდინოს გვერდზე.

მიუხედავად იმისა, რომ iPhone– ის დიზაინის მახასიათებლები, კერძოდ 320x480 ეკრანის ზომა, პრაქტიკულად უცვლელი დარჩა დაარსების დღიდან, Android პლატფორმაზე მოწყობილობების პარამეტრებს საკმაოდ ფართო სპექტრი აქვთ, რადგან ამ მოწყობილობებზე მობილური მოწყობილობები სხვადასხვა მწარმოებლების მიერ არის წარმოებული და მრავალფეროვანია მომხმარებელთა ჯგუფებისთვის. ამიტომ, თუ გსურთ თქვენი ვებ – აპლიკაცია პოპულარული იყოს მობილური მომხმარებლებისთვის, უნდა იცოდეთ Android მოწყობილობების ეკრანის ზომის, რეზოლუციების და დიზაინის მოსაზრებების შესაძლო განსხვავებები.

გამოცდილებამ აჩვენა, რომ Android– ის სხვადასხვა პროგრამულ მობილურ მოწყობილობებს შორის განსხვავებული დიზაინის გარდა, თავად Android პროგრამა ცდილობს შეცვალოს დატვირთული ვებ – გვერდის პარამეტრები, რაც დამოკიდებულია მობილური მოწყობილობის ბრაუზერის თვისებებზე. სტაბილურობის გარდა, Android პლატფორმას აქვს მუდმივად ცვალებადი თვისებები და შესაძლებლობები. კონკრეტული Android მოწყობილობის პარამეტრები, სავარაუდოდ, განსხვავდება თქვენი განვითარების გარემოსგან, რაც დამოკიდებულია SDK ვერსიასა და მოწყობილობის მწარმოებელზე. ნახაზი 4 გვიჩვენებს ბრაუზერის კონფიგურაციის ეკრანს V1.6 Android Emulator- ში. ეკრანის პარამეტრები მომხმარებელს საშუალებას აძლევს განსაზღვროს გამოსახულების მასშტაბის დონე ეკრანზე (შორეული, ახლო, საშუალო) ან აირჩიოს გვერდის მასშტაბის ავტომატური რეჟიმი.

მობილური მოწყობილობების სამყაროში ცვლილებები ყველაზე მუდმივია, ამიტომ მხედველობაში უნდა იქნას მიღებული მობილური პროგრამული უზრუნველყოფის ბაზრის განვითარება და განახლება. მაგალითად, Sprint Hero– ის ბრაუზერის პარამეტრები მოიცავს პარამეტრების ერთობლიობას, რომლებიც სრულიად განსხვავდება ნაგულისხმევი პარამეტრებისგან, რომლებიც გამოიყენება ვებ – გვერდის ჩატვირთვისას. Hero ბრაუზერი აგებულია Android V1.5 პლატფორმაზე HTC– ს მიერ განხორციელებული არაერთი მოდიფიკაციის გამოყენებით. საბედნიეროდ, Viewport მეტა-თეგის გამოყენებისას, გმირის სპეციფიკური პარამეტრები უგულებელყოფილი იქნება.

ჯერჯერობით, ჩვენ ვნახეთ, რომ WebKit- ს კარგად შეუძლია გაუმკლავდეს ვებ-გვერდის ჩატვირთვას, თუმცა მნიშვნელოვნად შემცირებული და ძნელად წასაკითხი ფორმით. შემდეგ ჩვენ გავაუმჯობესეთ კონტროლი, თუ როგორ ჩანს გვერდი მობილური ეკრანზე, viewport მეტა-თეგის გამოყენებით. გაწეული გვერდის წაკითხვა და ნავიგაცია გაცილებით ადვილია. მაგრამ ეს ჯერ კიდევ არ არის საკმარისი, რომ ჩვენი გვერდი გამოიყურებოდეს და იმოქმედოს, როგორც ვებ – პროგრამა.

დამზადებულია მობილური მოწყობილობებისთვის

გადავიდეთ მობილური აუდიტორიის ვებ – გვერდის დიზაინის მახასიათებლების გადახედვაზე. როგორც კონკრეტული მაგალითი, განვიხილოთ Google ელ.ფოსტის რეგისტრაციის გვერდი GMail- ისთვის.

ასე გამოიყურება ეს გვერდი დესკტოპის ბრაუზერის ფანჯარაში:


დესკტოპის ბრაუზერის ფანჯარა აჩვენებს ინფორმაციულ შინაარსს მარცხნივ, ხოლო სარეგისტრაციო ფანჯარა თავის მარჯვენა პანელშია. მობილური ბრაუზერის ფანჯარაში იმავე გვერდს სულ სხვა სახე აქვს.

მე -6 ნახაზზე ნაჩვენები გვერდი ნამდვილად განკუთვნილია მობილური მომხმარებლებისთვის. ეკრანზე ნაჩვენებია მხოლოდ გვერდის ის ელემენტები, რომლებიც მომხმარებლისთვის აუცილებელია შემდგომი მუშაობისთვის - დამატებითი გადახვევა, გადაადგილება ან მასშტაბირება არ არის საჭირო.

ახლა გადავხედოთ Gmail- ის მობილური ვერსიის ელ.ფოსტის დამთვალიერებელს. ვინაიდან აპლიკაციისთვის ხელმისაწვდომი ეკრანის სივრცე ძალიან შეზღუდულია, შეტყობინებების დამთვალიერებელს აქვს დამატებითი ღილაკები და სანავიგაციო ელემენტები. ამ შემთხვევაში ნაჩვენები სანავიგაციო ელემენტები ემთხვევა ფანჯრის შეტყობინებებს. ასევე, ნუ გამოიყენებთ ძალიან ბევრ ჩარჩოს ან გადახვევის გაყოფას, თუ ამის თავიდან აცილება შეგიძლიათ. Gmail- ის მობილური ვერსია ხსნის ამ პრობლემას pop-up მენიუს გამოყენებით, რომელიც გამოჩნდება, როგორც კი მომხმარებელი ამთავრებს გვერდის გადახვევას. ამომხტარი მენიუ შეიცავს 3 ღილაკს: არქივი, წაშლა და მეტი... ღილაკზე დაჭერით მეტი გამოჩნდება მენიუს დამატებითი ელემენტები (იხ. სურათი 7).

ეს ნამდვილად არის მობილური მოწყობილობებისთვის განკუთვნილი პროგრამა.

გასათვალისწინებელია, რომ ჩვენ არ გვსურს განზრახ გაღარიბოთ დიზაინი და შევამციროთ მობილური მომხმარებლების გამოცდილება, რომლებმაც შეიმუშავეს მრავალფუნქციური ბრაუზერები iPhone და Android პლატფორმებისთვის. ამ თვალსაზრისით, სასარგებლოა შენიშნოთ Gmail გვერდის ბოლოში ნაჩვენები ელემენტი (იხ. სურათი 8):

თუ მომხმარებელი ამჯობინებს დესკტოპის ვერსიის გაფართოებულ ფუნქციონირებას, შემოგთავაზეთ გვერდის შესაბამისი ვერსიის ჩამოტვირთვა.

ახლა გაითვალისწინეთ შემთხვევა, როდესაც გსურთ შექმნათ პროგრამა, რომელიც იყენებს ვებ ტექნოლოგიებს, მაგრამ ჰგავს მშობლიურ მობილურ აპლიკაციას.

პლატფორმის სპეციფიკური შინაარსი

შემდეგი ნაბიჯი არის კონკრეტული მობილური პლატფორმისთვის დამახასიათებელი შინაარსის შემუშავება. ეს განსაზღვრავს გვერდის ფორმატს და ინტერფეისს ისე, რომ შედეგად მიღებული გვერდი უფრო ჰგავს მშობლიურ პლატფორმას, ვიდრე სტანდარტულ საზოგადოებრივ ვებსაიტს. რას ვგულისხმობთ ”მშობლიურ” აპლიკაციაში?

დისკუსიაში შესვლამდე, თუ როგორ უნდა გააკეთოთ ვებგვერდი რაც შეიძლება მეტი მსგავსი იყოს კონკრეტული პლატფორმისთვის, უნდა დავტოვოთ iPhone და Android ბრაუზერების საერთო თვისებები და მოკლედ ვისაუბროთ ამ პლატფორმებს შორის ვიზუალურ განსხვავებებზე.

IPhone პროგრამებს აქვთ საკუთარი სპეციფიკური სახე და ინტერფეისი. აჩვენეთ ვინმეს iPhone- ის ეკრანის ანაბეჭდი და, თუ ეს ადამიანი სიტყვასიტყვით არ დაეცა მთვარეზე მეორე დღეს, ის თითქმის უმალვე იტყვის, რომ ეს არის iPhone. აჩვენეთ იგივე ადამიანს Android მობილური მოწყობილობის ეკრანის ანაბეჭდი და პასუხი აღარ იქნება გასაგები. Რა არის მიზეზი? არსებობს რამდენიმე შესაძლო ახსნა. პირველ რიგში, iPhone ბაზარზე გაცილებით ადრე გამოჩნდა, ვიდრე Android მოწყობილობები და მოახერხა დიდი გულშემატკივრების შეძენა. იფიქრეთ იმ ადამიანებზე, რომლებიც რიგში დგანან, რომ ბევრი ფული გადაიხადონ V1 iPhone- ის შეზღუდული შესაძლებლობებისთვის. მოგწონთ თუ არა iPhone, Apple- ის ეს პროდუქტი ამჟამად ბაზრის ლიდერია. რაც შეეხება Android- ს?

Android პლატფორმა შედარებით ახალი პროდუქტია და მრავალი თვალსაზრისით iPhone- ის საპირისპირო როლს ასრულებს, რადგან ის ძირითადად ღია საზოგადოებისთვისაა შექმნილი. Android პლატფორმა გამოიყენება მრავალფეროვან მოწყობილობებში (ტელეფონები და სხვა საყოფაცხოვრებო ტექნიკა). განხილვის გამარტივების მიზნით, ეს სტატია შემოიფარგლება Android– ის გამოყენებით მობილურ ტელეფონებზე.

დროთა განმავლობაში მსოფლიოში Android მოწყობილობების რაოდენობა iPhone- ების რაოდენობას გადააჭარბებს. ეს იმიტომ ხდება, რომ Android მოწყობილობები იწარმოება სხვადასხვა კომპანიის მიერ და მათ მხარს დაუჭერს მონაცემთა მრავალფეროვანი ქსელები. Android მობილური ბაზრის მოთამაშეების ასეთი მნიშვნელოვანი რაოდენობა, ეჭვგარეშეა, რომ ბაზრის გარკვეული ფრაგმენტაცია უნდა იყოს მოსალოდნელი მოწყობილობების გარეგნობისა და პარამეტრების საფუძველზე. ეს ტენდენცია აშკარაა HTC- ის SenseUI- ში. ამ მიმზიდველ სახეს და შეგრძნებას არ აქვს ბაზის Android SDK მხარდაჭერა და არ არის თავსებადი სხვა Android მოწყობილობებთან. Motorola, Google და Verizon შეუერთდნენ ძალებს ახალი Android- ზე დაფუძნებული DROID მოწყობილობის შესაქმნელად. ეს არის პირველი კომერციული პროდუქტი, რომელიც დაფუძნებულია Android ვერსია 2.0-ზე.

შეადარეთ Android სისტემის მრავალფეროვნება iPhone- ის ერთგვაროვან სახესა და შეგრძნებას. IPhone არის Apple- ის განსაკუთრებით ღირებული ქონება. IPhone აპლიკაციების გამოჩენა შეიძლება ოდნავ შეიცვალოს დროთა განმავლობაში, მაგრამ ამ უმნიშვნელო ცვლილებებს, სავარაუდოდ, ვერ შევადარებთ Android სისტემის სხვადასხვა ვერსიებს, რომელთა რაოდენობა საკმაოდ დიდია ახლაც, როდესაც პლატფორმა საწყის ეტაპზეა.

რა უნდა გაკეთდეს იმისათვის, რომ აპლიკაციის გარეგნობა და ინტერფეისი რაც შეიძლება ახლოს იყოს "მშობლიურ" პროგრამებთან?

თუ ეს გამოწვევა იქნებოდა ვებ 2.0-ის წინაშე, ეს ნამდვილად დიდი პრობლემა იქნებოდა. მრავალჯერადი კლიენტის ბრაუზერის (მობილური და დესკტოპის) მხარდაჭერის ადრეული მცდელობები ემყარებოდა რამდენიმე მიდგომას, მაგალითად:

  • სრულად პარალელური საიტების განვითარება
  • დინამიური შინაარსის წარმოება დამოკიდებულია userAgent პარამეტრზე
  • მარიონეტული სერვერების გამოყენება, რომლებსაც შეუძლიათ შინაარსის გარდაქმნა თითოეული კონკრეტული მოწყობილობიდან გამომდინარე. RIM– მა წარმატებით გამოიყენა ეს ტექნოლოგია კლიენტის მობილური მოწყობილობიდან ელექტრონულ ფოსტაზე წვდომის უზრუნველსაყოფად.

ასეთი მიდგომები შეიძლება საკმაოდ მისაღები იყოს იმ შემთხვევებში, როდესაც განვითარებას ახორციელებენ დიდი, კარგად დაფინანსებული გუნდები. რაც შეეხება დანარჩენ მსოფლიოს? ყველას არ აქვს მნიშვნელოვანი ფინანსური რესურსი, მაღალკვალიფიციური სპეციალისტები და შეუზღუდავი დრო ამგვარი სტრატეგიების განსახორციელებლად. გარდა ამისა, როგორც უკვე აღვნიშნეთ, წინა თაობის ბრაუზერების მობილური ინტერნეტი არ შეიძლება ეწოდოს მოსახერხებელ ან პოპულარულ გამოყენებას, ასე რომ, ნებისმიერ შემთხვევაში არ უნდა შეეხოთ მოძველებულ მეთოდებსა და მიდგომებს.

საბედნიეროდ, ამის გაკეთება არ დაგვჭირდება. WebKit და CSS ეპოქაში, სხვადასხვა მობილური მოწყობილობების გარეგნობასა და შეგრძნებაში სხვაობა შეიძლება აიხსნას სტილის ფურცლებისა და მედია მოთხოვნების გამოყენებით, რაც საშუალებას მისცემს სხვადასხვა სტილს, კონკრეტული ტიპის მოწყობილობიდან გამომდინარე. მედია მოთხოვნების ტექნოლოგია საშუალებას გაძლევთ მიიღოთ ინფორმაცია კლიენტის შესახებ. ტრადიციულად, ბრაუზერი უგზავნის userAgent მნიშვნელობას სერვერზე, რაც სერვერს საშუალებას აძლევს განსაზღვროს კონკრეტული ბრაუზერი და განსაზღვროს შინაარსი, რომელიც ემსახურება კლიენტს. მედია მოთხოვნის გამოყენებით, ბრაუზერი ირჩევს გვერდის სტილს მისი შესაძლებლობების გათვალისწინებით. შემდეგი მაგალითი აჩვენებს სმარტფონებისათვის სტილის ფურცლის შერჩევას: ... ეს მოთხოვნა განსაზღვრავს სტილის ფურცელს სამუშაო მაგიდისთვის: .

Internet Explorer V6

ამ სტატიის მომზადების დროს, Internet Explorer V6– ს ჰქონდა ბრაუზერის მთლიანი ბაზრის დაახლოებით 20-30%, მაგრამ IE V6 ამ სტატიის ფარგლებს სცილდება.

დაწვრილებითი ინფორმაცია მედიის მოთხოვნების შესახებ შეგიძლიათ იხილოთ სპეციფიკაციის პროექტში (იხილეთ განყოფილება).

განვიხილოთ მედია მოთხოვნების გამოყენების მაგალითი პროგრამის შესაქმნელად, რომელიც აჩვენებს ქსელის სერვერების მდგომარეობას.

ქსელის მონიტორინგის პროგრამა

ამ პროგრამის მიზანია მრავალი სერვერის მუშაობის მონიტორინგი. პროგრამული უზრუნველყოფის დამოუკიდებელ მოვაჭრეებს ხშირად უწევთ მრავალი სერვერის მრავალი პროგრამის მხარდაჭერა. თუ რაიმე მნიშვნელოვანი დროის განმავლობაში ავითარებდით პროგრამულ უზრუნველყოფას, ალბათ უკვე შეგხვდით სხვადასხვა ტიპის სერვერები და სხვადასხვა ტიპის პროგრამები. ყოველივე ეს ნიშნავს, რომ სიტუაცია საკმაოდ შესაძლებელია, როდესაც ვერ გამოიყენებთ ერთ ინსტრუმენტს, რომ თვალყური ადევნოთ ყველა საჭირო პროგრამის მუშაობას. ამ შემთხვევაში აზრი აქვს მობილური ქსელის მონიტორინგის პროგრამის (netmon) გამოყენებას. პროგრამა უზრუნველყოფს ყველა საჭირო ფუნქციონირებას, ხოლო მობილური მოწყობილობიდან რჩება მოქნილი და ხელმისაწვდომი.

Netmon პროგრამა შეიცავს სერვერების ჩამონათვალს, რომელთა მონიტორინგიც შეიძლება. შესრულების ძირითადი ინდიკატორები (KPI) გროვდება თითოეული სერვერისთვის. KPI არის ძირითადი ინსტრუმენტი, რომელსაც MBA– ს სტუდენტები იყენებენ მრავალი წლის განმავლობაში ბიზნესის ამჟამინდელი მდგომარეობის შესაფასებლად. ვებ – პროგრამის ჰოსტინგის პერსპექტივიდან შემდეგი KPI– ების გამოყენება შეიძლება:

  • გასული პერიოდის განმავლობაში განხორციელებული ტრანსაქციების რაოდენობა
    • შეკვეთები
    • დირექტორიის მოთხოვნები
    • ელ.ფოსტის შეტყობინებები
    • გვერდის ნახვები
  • გასული დრო ბოლო ტრანსაქციიდან
    • შეკვეთა
    • მონაცემთა ელექტრონული გაცვლა
    • შეტყობინებები ბიზნეს პარტნიორისგან
    • ფაილის ატვირთვა გამყიდველიდან FTP– ით
  • მონაცემთა ბაზა ხელმისაწვდომია
  • ბოლო სარეზერვო თარიღი
  • შეკვეთის საშუალო თანხა (აშშ დოლარი)
  • თავისუფალი ადგილი დისკზე
  • გამტარუნარიანობა ბოლო საათის, დღის, თვისთვის

ზემოთ მოცემული მეტრიკა და სხვა მსგავსი ოპერაციული პარამეტრები საშუალებას გაძლევთ შეაფასოთ კონკრეტული სისტემის ან პროგრამის ჯანმრთელობა. მაგალითად, საკურორტო სეზონის განმავლობაში ჩვენ ვუყურებთ ჩვენს ზოგიერთ საიტზე შეკვეთის რაოდენობას. თუ მონაცემები არ აჩვენებს შეკვეთების რაოდენობის მუდმივ ზრდას ყოველ საათში, ჩვენ ვატარებთ სიტუაციის უფრო დეტალურ ანალიზს.

ვინაიდან კონკრეტული პროგრამა მოითხოვს საკუთარ პირობებსა და რესურსებს, netmon უნდა იყოს საკმარისად მოქნილი, რომ შეესაბამებოდეს თითოეული პროგრამის სპეციფიკას. მოქნილობის ამ დონის უზრუნველსაყოფად, ჩვენ ვიწყებთ მონაცემთა ზოგადი სტრუქტურის განსაზღვრით, თითოეული სისტემის მდგომარეობის დასაკმაყოფილებლად. მე -2 ნაწილში, ჩვენ ყურადღებით დავაკვირდებით სად მოდის ეს მონაცემები და როგორ ხდება მისი განახლება. ახლა ჩვენ შემოვიფარგლებით შემდეგი ინფორმაციით:

  • Საიტის სახელი
  • საიტის (საწყისი გვერდი) url
  • განახლებების მისაღებად URL
  • სტატუსი: კარგია თუ არა
  • მოკლედ: სერვერის მდგომარეობის აღწერა, რომელიც ან იქნება კარგი ან შეიცავს ტექსტურ სტრიქონს, რომელიც მიუთითებს ამ სერვერის ყველაზე სერიოზულ პრობლემაზე.
  • ელემენტები: ეს არის სახელი / მნიშვნელობის წყვილი, რომელიც ჩვენ გვჭირდება შესაბამისი KPI მნიშვნელობების შესაცნობად შესაბამისი საიტისთვის.

ჩვენი აპლიკაცია აჩვენებს ეფექტურობის შედეგად მიღებულ ინდიკატორებს ადვილად სანავიგაციო მეთოდით, მაქსიმალურად გამოიყენებს CSS, jQuery და WebKit ენერგიას, რათა მომხმარებლის ყურადღება მიიპყროს პრობლემურ სფეროებზე. როგორც უკვე აღვნიშნეთ, ამ პროგრამის შემუშავების მთავარი მიზანია Safari ბრაუზერში მისი გაშვება iPhone, Android პლატფორმაზე და დესკტოპ კომპიუტერზე.

ქსელის მონიტორინგის პროგრამის შემუშავება

თანამედროვე ვებ – გვერდები უნდა შეიქმნას დეკლარაციული გზით, რომელიც განსაზღვრავს გვერდის ორგანიზაციულ სტრუქტურასა და შინაარსს. გვერდის პოზიციონირება და ფორმატირება ხდება კასკადური CSS სტილის ფურცლების გამოყენებით და, უმეტეს შემთხვევაში, JavaScript– ის გამოყენებით. სინამდვილეში, JavaScript ბიბლიოთეკები იმდენად პოპულარული გახდა, რომ მათი გამოყენება დღეს უფრო წესია, ვიდრე გამონაკლისი. ამ სტატიაში განხილულ განაცხადში გამოვიყენებთ პოპულარულ JavaScript ბიბლიოთეკის jQuery- ს. ჩვენი პროგრამა იმუშავებს iPhone, Android და desktop პლატფორმებზე. ეს გამოიყენებს ერთსა და იმავე HTML კოდს და განახორციელებს ყველა საჭირო განსხვავებას სტილის ფურცლებში. აქვე უნდა აღინიშნოს, რომ ჩვენ შეგნებულად არ ვცდილობდით მნიშვნელოვანი განაცხადის შემუშავებას. უფრო მეტიც, ფონი განზრახ შეირჩა გამჭოლი, ერთმანეთთან ჰარმონიისგან, რათა მკითხველის დამატებითი ყურადღება მიექციათ სტილის ფურცლების ორგანიზაციისკენ. მე -2 ნაწილში, ჩვენ ოდნავ გავაუმჯობესებთ აპლიკაციის გარეგნობას, მაგრამ ახლა მისი HTML ჰგავს იმ ჩამონათვალს, რომელიც ნაჩვენებია 1 ჩამონათვალში.

ჩამონათვალი 1. აპლიკაციის HTML კოდი
ჩემი ქსელის რესურსები
ჩემი მომხმარებლის აგენტი


შემოთავაზებული HTML კოდის სწრაფი გადახედვა შემდეგ ძირითად მახასიათებლებს ავლენს:

  • კოდი იყენებს ორ გარე JavaScript ფაილს: ერთი jQuery ბიბლიოთეკის ფაილი და ერთი დამხმარე ფაილი ჩვენი პროგრამისთვის.
  • კოდი იყენებს ხედვის პორტის მეტა-ნიშანს ნაჩვენები შინაარსის მასშტაბირების მიზნით.
  • სტილის ძირითადი ფურცელი განისაზღვრება netmon.css ფაილით.
  • UserAgent პარამეტრი გამოიყენება დამხმარე სტილის ფურცლის დასადგენად. მისი მნიშვნელობიდან გამომდინარე, აიტვირთება სტილის ფურცელი iPhone, Android ან დესკტოპის ბრაუზერისთვის.
  • გვერდის ჩატვირთვისას, მონაცემების საჩვენებლად გამოიყენება jQuery და netmon.js ფაილით განსაზღვრული დამხმარე ფუნქცია.
  • გვერდის მთავარ კოდში გამოყენებულია რამდენიმე div ნიშანი.
  • დაბოლოს, კოდში მოცემულია ბმული გვერდზე, რომელიც აჩვენებს სტრიქონს userAgent. ამ ბმულს არანაირი კავშირი არ აქვს პროგრამასთან და გამოიყენება მხოლოდ სადემონსტრაციო მიზნებისთვის.

სანამ დაწვრილებით გადავხედავთ სტილის ფურცლებსა და netmon.js ფაილს, რომლებიც სინამდვილეში განსაზღვრავს პროგრამის ძირითად მოქმედებას, მოდით გავეცნოთ ჩვენს პროგრამას ამჟამინდელ მდგომარეობაში. კიდევ ერთხელ გაითვალისწინეთ, რომ ჩვენ ვიყენებთ სამ განსხვავებულ სტილის ფურცელს, თითო-თითო თითო მხარდაჭერილი სამი პლატფორმიდან. განაცხადის შემუშავების პროცესი უფრო ვიზუალური რომ გახდეს, თითოეული ცხრილი განსაზღვრავს საკუთარი ფონის ფერს. სურათი 9-ში, ჩვენი გვერდი გახსნილია Desktop Safari- ში და აქვს ლურჯი ფონი.

სურათი 11 გვიჩვენებს პროგრამის გამოჩენას iPhone ბრაუზერის ფანჯარაში (ფონის ფერი არის მწვანე).

Netmon.js ფაილში შენახული მთავარი სტილის ფურცელი ნაჩვენებია მე –2 ჩამონათვალში.

ჩამონათვალი 2. მთავარი სტილის ფურცელი
კორპუსი (ფერი: # 888888; font-family: Helvetica; font-size: 14px; margin: 0px; padding: 0;). დეტალები (margin: 0px; padding: 0px; background-color: white; border; solid; border -სიგანე: 1px; -webkit- საზღვარი-ზედა მარცხენა რადიუსი: 8px; -მართვის რადიუსი: 8px;). OK (ფერი: # 000000;). ცუდი (ფერი: # ff0000;) .odd (ფონის-სურათი: -webkit- გრადიენტი (ხაზოვანი, მარცხენა ზედა, მარჯვენა ქვედა, საწყისი (#ccc ), (# 999));). კი (ფონური გამოსახულება: -webkit- გრადიენტი (წრფივი, მარცხენა ზედა, მარჯვენა ქვედა, (# 999) -იდან (#ccc));). მიირთვით a (float: მარჯვნივ; ფერი: #ffffff;). სერვერიტემები (ფერი: # 000;) # header h1 (ზღვარი: 0; შევსება: 0; ტექსტის გასწორება: ცენტრი; ფერი: # 000;)

თითოეული პლატფორმისთვის მორგებული სტილის ფურცლის გამოყენება საშუალებას გაძლევთ შეასრულოთ შემდეგი ამოცანები:

  1. შეცვალეთ გვერდის ფერის სქემა. ეს საშუალებას აძლევს, პირველ რიგში, ვიზუალურად აჩვენოს სტილის ფურცლის როლი და მეორეც, აჩვენოს, თუ რამდენად ადვილია სასურველი სტილის ფურცლის შერჩევა, userAgent პარამეტრის მნიშვნელობიდან გამომდინარე.
  2. დააყენეთ შრიფტის სხვადასხვა ზომა მობილური და დესკტოპის პლატფორმებისათვის.
  3. შეამოწმეთ WebKit– ის შესაბამისი მახასიათებლები. ეს მნიშვნელოვანი იქნება, თუ აპლიკაცია მუშაობს ბრაუზერში WebKit– ის მხარდაჭერის გარეშე, მაგალითად Firefox.

3 ჩამონათვალში მოცემულია კოდი iphone.css ფაილისთვის.

ჩამონათვალი 3. iphone.css ფაილი
კორპუსი (ფონის ფერი: # 00ff00;). სერვერენტი (-webkit-border-top-left-radius: 8px; -webkit-border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px;). სახელი (შრიფტის ზომა: 2em;). შემაჯამებელი (შრიფტის ზომა: 1.5em;). ა (შრიფტის ზომა: 1.5em;)

როგორც ვხედავთ, სხეულის ტეგის ფონის ფერია მწვანე (# 00ff00), ხოლო შრიფტის ზომა მორგებულია მობილური მოწყობილობის ეკრანზე უკეთესი წაკითხვისთვის. დაბოლოს, მოდით გავეცნოთ netmon.js ფაილს, რომელიც განსაზღვრავს სერვერების ჩამონათვალს და ფუნქციას, რომელიც გამოაქვს მონაცემებს თითოეული სერვერისთვის (გამოიყენება მე -4 ჩამონათვალში). მოკლედ რომ ვთქვათ, ფაილის კოდის ნაწილი გამოტოვებულია; მისი სრული ტექსტი იხილეთ განყოფილებაში).

ჩამონათვალი 4. netmon.js ფაილი
var netmon \u003d (ინიცირება: ფუნქცია () (), რესურსები: [(სახელი: "msiservices.com", homeurl: "http://msiservices.com", pingurl: "http://msiservices.com/netmon.php ", სტატუსი:" OK ", რეზიუმე:" OK ", ელემენტები: [(სახელი:" DiskSpace ", მნიშვნელობა:" 22.13 GB "), (სახელი:" მონაცემთა ბაზა? ", მნიშვნელობა:" დიახ ")]), (სახელი: "სერვერი 2", homeurl: "http: // someurl", pingurl: "http: //someurl/netmon.jsp", სტატუსი: "OK", რეზიუმე: "OK", ელემენტები: [(სახელი: "DiskSpace", მნიშვნელობა: "100.8 GB"), (სახელი: "მონაცემთა ბაზა?", მნიშვნელობა: "დიახ")], // დამატებითი ჩანაწერები მოკლედ გამოკვეთილი], გაწევა: function (index, itm) (try ( var ret \u003d "; ret + \u003d"
"; ret + \u003d" "+ itm.name +" შოუ
"; if (itm.status! \u003d" კარგი ") (ret + \u003d" - "+ itm.summary +"
";) ret + \u003d"
"; jQuery.each (itm.items, ფუნქცია (j, itemdetail) (ret + \u003d"\u003e "+ itemdetail.name +" \u003d "+ itemdetail.value +"
";)); ret + \u003d"
"; ret + \u003d"
"; დაბრუნება ret;) დაჭერა (e) (დაბრუნება")
შეცდომა ერთეულის წარმოდგენისას ["+ itm.name +"] "+ e +"
"; } } };

თუ რომელიმე სერვერის სტატუსის ზოლი არაა კარგი, მაშინ სერვერის შესაბამისი ჩანაწერი წითლდება, რაც ჩანს CSS ფაილში კლასის განსაზღვრებიდან. გარდა ამისა, თუ სერვერის სტატუსის შემოწმებამ გამოავლინა პრობლემები (სტატუსი არ არის კარგი), დამატებით გამოჩნდება პრობლემის მოკლე აღწერა. 9-11 ფიგურებში ხედავთ, რომ სერვერი 4 იწურება თავისუფალი ადგილი დისკზე. ამ სერვერის სტრიქონზე დაჭერით გამოჩნდება დეტალური შეტყობინება პრობლემის შესახებ (იხ. სურათი 12).

დააჭირეთ ბმულს შოუ სერვერის სახელის მარჯვნივ იხსნება სერვერის საწყისი გვერდი. ასეთი ბმულის არსებობა ძალიან მოსახერხებელია ორი მიზეზის გამო: პირველი, ეს გიშლით ხელს თითოეული სერვერის URL– ის დამახსოვრებას და მეორეც გიხსნით კიდევ უფრო იმედგაცრუებას, რომლითაც უნდა აკრიფოთ ეს URL თქვენი მობილური კლავიშიდან ( ყველაზე მოსახერხებელიც კი).

ასე რომ, თუ netmon- ის წარმატებით გაშვება შეგვიძლია მობილური მოწყობილობაზე, სერვერის მხარდაჭერის ამოცანამ პრობლემები არ უნდა გამოიწვიოს.

დასკვნა

ეს სტატია წარმოგიდგენთ iPhone და Android– ის ვებ – პროგრამების შემუშავების პრინციპებს WebKit ტექნოლოგიის გამოყენებით. მე -2 ნაწილში, ჩვენ გავაფართოებთ ჩვენი პროგრამის შესაძლებლობებს Ajax ზარების გამოყენებით მონაცემების განახლების ფუნქციონალურობით.

  • Გადაცემა

მრავალი ჩვენგანისთვის, WebKit - შავი ყუთი... ჩვენ ვაყრით HTML, CSS, JS და რამდენიმე სურათს და WebKit, რატომღაც ... ჯადოსნურად გვაძლევს ვებ – გვერდს, რომელიც კარგად გამოიყურება და კარგად მუშაობს.
მაგრამ მართლა როგორ ამბობს ჩემი კოლეგა ილია გრიგორიკი :

ვებ ნაკრები არ არის შავი ყუთი. ეს არის თეთრი ყუთი. და არა მხოლოდ თეთრი, არამედ ღია ყუთი

მოდით ვცადოთ გაერკვნენ რამდენიმე რამში:
  • რა არის WebKit?
  • რა არ არის WebKit?
  • როგორ გამოიყენება WebKit ბრაუზერების მიერ?
  • რატომ არ არის ბევრი WebKits ერთი და იგივე?
ახლა, განსაკუთრებით იმ ამბების შემდეგ, რომ Opera– მა WebKit– ზე შეცვალა, ჩვენ გარშემორტყმულია უამრავი WebKit ბრაუზერით და ძნელია იმის თქმა, თუ რა აერთიანებს მათ და სად მიდიან ისინი საკუთარი გზით. ქვემოთ, ვიმედოვნებ, რომ ვცდილობთ გარკვევით განვსაზღვროთ ეს საკითხი. შედეგად, თქვენ შეგიძლიათ უკეთესად ამოიცნოთ ბრაუზერის განსხვავებები, შეცდომები გაუგზავნოთ სწორ ტრეკერს და უფრო ეფექტურად გადაკვეთოთ ბრაუზერის შემუშავება.

სტანდარტული ბრაუზერის კომპონენტები

მოდით ჩამოთვალოთ თანამედროვე ბრაუზერების რამდენიმე კომპონენტი:
  • ანალიზი (HTML, XML, CSS, Javascript- ის ანალიზი)
  • განლაგება
  • ტექსტისა და გრაფიკის გაცემა
  • გამოსახულების დეკოდირება
  • GPU ურთიერთქმედება
  • ქსელზე წვდომა
  • აპარატურის აჩქარება
რომელია საერთო WebKit ყველა ბრაუზერისთვის? საკმაოდ მხოლოდ პირველი ორი.

თითოეული WebKit "პორტი" ახორციელებს სხვა კომპონენტებს თავისებურად. ვნახოთ რას ნიშნავს ეს.

WebKit პორტები

აქ არის მრავალი WebKit "პორტი" და მე გთავაზობთ Aria Hidayat- ს, WebKit ჰაკერებს და მათ. სენჩას დირექტორს უფლება აქვს ამის შესახებ თქვას:

WebKit– ის ყველაზე პოპულარული ასოციაცია ჩვეულებრივ Apple– ის WebKit– ია, რომელიც მუშაობს Mac OS X– ზე (პირველი და ორიგინალური WebKit ბიბლიოთეკა). როგორც გამოგიცნობთ, სხვადასხვა ინტერფეისი ხორციელდება სხვადასხვა ადგილობრივი Mac OS X ბიბლიოთეკის გამოყენებით, ძირითადად ფოკუსირებული CoreFoundation კომპონენტში მაგალითად, თუ თქვენ განსაზღვრავთ ფერადი ბრტყელ ღილაკს სპეციალური მონაკვეთის რადიუსით, WebKit– მა იცის სად და როგორ უნდა დახაზოს ეს ღილაკი, ხოლო ღილაკის საბოლოო გაწევა (როგორც პიქსელები მომხმარებლის მონიტორზე) მოდის CoreGraphics– ზე.

როგორც ზემოთ აღვნიშნე, გამოყენებული CoreGraphics უნიკალურია თითოეული WebKit პორტისთვის. მაგალითად, Chrome for Mac იყენებს Skia– ს.

რაღაც მომენტში, WebKit გადაიტანეს სხვადასხვა პლატფორმებზე, როგორც დესკტოპის, ისე მობილური. ამ ვარიაციას ჩვეულებრივ უწოდებენ "WebKit პორტს". Safari Windows– ისთვის, Apple– მა ასევე დამოუკიდებლად „გადააყენა WebKit“, რათა იმოქმედოს Windows– ზე მისი (შეზღუდული განხორციელება) CoreFoundation ბიბლიოთეკის გამოყენებით.

... მიუხედავად იმისა, რომ Safari for Windows ახლა მკვდარია.
გარდა ამისა, არსებობდა მრავალი სხვა "პორტი" (იხილეთ სრული სია). Google– მა შექმნა და ინარჩუნებს თავის Chromium პორტს. ასევე არსებობს WebKitGtk, რომელიც დაფუძნებულია Gtk + - ზე. Nokia (და ახლა ის Trolltech- მა, რომელმაც იყიდა იგი) ინარჩუნებს WebKit Qt პორტს, რომელიც გახდა პოპულარული, როგორც QtWebKit მოდული.

WebKit– ის ზოგიერთი პორტი

  • Safari
    - Safari ქვეშ OS X და Safari ქვეშ Windows ორი განსხვავებული პორტი
    - WebKit Nightly Build არის Safari– სთვის გამოყენებული Mac– ის „პორტის“ საწყისი კოდის შედგენა, მხოლოდ უფრო ახალი
  • მობილური Safari
    - განვითარდა კერძო ფილიალში, მაგრამ მოგვიანებით გაიხსნა.
    - Chrome iOS– ისთვის (იყენებს Apple– ის WebView– ს; ოდნავ მოგვიანებით განსხვავების შესახებ)
  • Chrome (ქრომი)
    - Chrome for Android (პირდაპირ იყენებს Chromium "პორტს")
    - ქრომი ასევე წარმოადგენს ბრაუზერების საფუძველს: Yandex, Sogou და მალე Opera.
  • Android ბრაუზერი
    - იყენებს უახლეს WebKit კოდს, რომელიც ხელმისაწვდომია გამოსვლის დროს.
  • კიდევ უფრო მეტი პორტი: Amazon Silk, Dolphin, Blackberry, QtWebKit, WebKitGTK +, The EFL პორტი (Tizen), wxWebKit, WebKitWinCE და ა.შ.
სხვადასხვა პორტს შეუძლია ფოკუსირება მოახდინოს სხვადასხვა ამოცანებზე. Mac პორტის ფოკუსია ბრაუზერსა და ოპერაციულ სისტემას შორის გამიჯვნა და Obj-C და C ++ სავალდებულო საშუალებების უზრუნველყოფა გატარების ძრავის ჩასადებად მშობლიურ პროგრამებში. Chromium პორტის ფოკუსირება მთლიანად ხდება ბრაუზერზე. QtWebKit გვთავაზობს, რომ მისი პორტი გამოყენებულ იქნეს cross-platform განაცხადის არქიტექტურასთან ერთად, როგორც გამაძლიერებელი ძრავა.

რა არის საერთო WebKit ყველა ბრაუზერში

პირველ რიგში, მოდით გავეცნოთ საერთო მახასიათებლებს, რომლებიც გამოიყენება ყველა WebKit ბრაუზერში:

თქვენ იცით, რომ ეს სასაცილოა, ამ აბზაცის დაწერას რამდენიმეჯერ ვცდილობდი. და ყოველთვის, როდესაც Chrome- ის გუნდის წევრებმა შეასწორეს, როგორც ნახავთ ...

  1. ასე რომ, უპირველეს ყოვლისა, WebKit აანალიზებს HTML- ს იგივე გზით. გარდა ამისა, გარდა იმისა, რომ Chromium ერთადერთი პორტია, ამჟამად ჩართულია HTML ანალიზის სტრიმინგის მხარდაჭერა.
  2. ... კარგი, მაგრამ HTML– ის ანალიზის შემდეგ, DOM ხე აგებულია იმავე გზით. სინამდვილეში, Shadow DOM ჩართულია მხოლოდ Chromium პორტისთვის, ამიტომ DOM კონსტრუქცია განსხვავდება. ასევე მორგებული ელემენტებისათვის.
  3. ... კარგი, WebKit ქმნის ფანჯრისა და დოკუმენტური ობიექტების ყველას ერთნაირად. მართალია, თუმცა მათ მიერ მოწოდებული თვისებები და კონსტრუქციები შეიძლება დამოკიდებული იყოს მხატვრული დროშების გამოყენებაზე.
  4. ... CSS– ის ანალიზი იგივეა. თქვენი CSS- ის ჭამა და მისი CSSOM- ით გადაკეთება საკმაოდ სტანდარტულია. დიახ, თუმცა Chrome მხარს უჭერს მხოლოდ -webkit- პრეფიქსებს, ხოლო Apple და სხვა ბრაუზერები ამორტიზებული -khtml- და -apple- პრეფიქსით.
  5. … განლაგება… პოზიციონირება? ჰგავს პურს და კარაქს. ყველგან ასეა, არა? ისე უკვე! ქვეპიქსელის განლაგება და მდიდარი განლაგების არითმეტიკა WebKit– ის ნაწილია, მაგრამ განსხვავდება პორტიდან პორტამდე.
  6. სუპერ

ასე რომ, ეს რთულია.

ახლა შევეცადოთ შევაჯამოთ რა არის საერთო WebKit სამყაროში ...

რა არის საერთო თითოეული WebKit პორტისთვის.

  • DOM, ფანჯარა, დოკუმენტი
    Მეტი ან ნაკლები
  • CSSOM
  • CSS თვისების / მნიშვნელობის ანალიზი
    მწარმოებლის პრეფიქსების განსხვავებები
  • HTML ანალიზს და DOM- ის მშენებლობას
    იგივეა, თუ დავივიწყებთ ვებ კომპონენტებს.
  • განლაგება და პოზიციონირება
    Flexbox, Floats, ბლოკის ფორმირების კონტექსტი ... ყველაფერი საერთო
  • მომხმარებლის ინტერფეისის ხელსაწყოები და დეველოპერული საშუალებები, როგორიცაა Chrome DevTools aka WebKit ინსპექტორი.
    მიუხედავად იმისა, რომ გასული აპრილიდან Safari იყენებს საკუთარ Safari- ს ინსპექტორს, არა WebKit- ს, დახურულ წყაროს.
  • ისეთი ფუნქციები, როგორიცაა contenteditable, pushState, File API, SVG– ების უმეტესობა, CSS გარდაქმნის მათემატიკა, ვებ აუდიო API, localStorage
    განხორციელება შეიძლება განსხვავდებოდეს. თითოეულ პორტს შეუძლია გამოიყენოს საკუთარი მეხსიერება localStorage– სთვის და შეუძლია გამოიყენოს სხვა აუდიო API ვებ აუდიო API– სთვის.
ეს ცოტა დამაბნეველი ხდება, მოდით ვცადოთ განვიხილოთ ზოგიერთი განსხვავება.

ახლა, რა არ არის საერთო WebKit პორტებისთვის:

  • GPU– სთან დაკავშირებული ყველაფერი
    - 3D გარდაქმნები
    - WebGL
    - ვიდეოს დეკოდირება
  • ნახაზი 2D ეკრანზე
    - aliasing ტექნოლოგიები
    - SVG და CSS გრადიენტების გაწევა
  • ტექსტის გაცემა და დეფისი
  • ქსელის ტექნოლოგიები (SPDY, წინასწარი გაწევა, WebSocket ტრანსპორტი)
  • JavaScript ძრავა
    - JavaScriptCore ძრავა არის WebKit საცავში. მაგრამ WebKit– ში არის კავშირი როგორც მისთვის, ასევე V8– სთვის.
  • ფორმის ელემენტების გაწევა
  • ვიდეო და აუდიო ნიშნის ქცევა და კოდეკის მხარდაჭერა
  • გამოსახულების დეკოდირება
  • უკან / ნავიგაცია უკან
    - pushState () ნაწილი
  • SSL ფუნქციები, როგორიცაა მკაცრი ტრანსპორტის უსაფრთხოება და საზოგადოებრივი გასაღების პინები
მოდით ვნახოთ ერთი მათგანი: 2D გრაფიკა დამოკიდებულია პორტზე, ჩვენ ვიყენებთ აბსოლუტურად განსხვავებულ ბიბლიოთეკას ეკრანზე გამოსახვისთვის:

ან უფრო დეტალურად რომ ვთქვათ, ახლახანს დამატებული ფუნქცია: CSS.supports () ჩართულია ყველა პორტისთვის, გარდა win და wincairo, რომელთაც არ აქვთ ჩართული css3 პირობითი მახასიათებლები

ახლა ჩვენ ტექნიკურ დეტალებში ვიღებთ ... დროა პედანტი ვიყოთ. ზემოხსენებულიც კი არ არის სრულყოფილი. სინამდვილეში ეს არის WebCore, ის არის საერთო კომპონენტი. WebCore არის განლაგება, გაწევა და DOM ბიბლიოთეკა HTML და SVG– სთვის და ძირითადად რას ფიქრობენ ადამიანები, როდესაც ამბობენ WebKit. მართლაც, "WebKit" ტექნიკურად წარმოადგენს სავალდებულო ფენას WebCore- სა და "პორტებს" შორის, თუმცა ჩვეულებრივ საუბარში ეს განსხვავება მნიშვნელოვნად არ არის მნიშვნელოვანი.

დიაგრამა უნდა დაეხმაროს:

WebKit– ის მრავალი კომპონენტი შეცვლადია (ნაჩვენებია ნაცრისფერში).

მაგალითად, WebKit- ის JavaScript ძრავა, JavaScriptCore, არის ნაგულისხმევი ძრავა WebKit- ში. იგი თავდაპირველად ეფუძნება KJS- ს (KDE- სგან) იმ დღიდან, როდესაც WebKit დაიწყო KHTML ჩანგლის სახით. ამავე დროს, Chromium პორტი გადადის V8 ძრავაზე და იყენებს უნიკალურ DOM კავშირებს.

შრიფტები და ტექსტის გაწევა პლატფორმის ძალიან დიდი ნაწილია. WebKit– ში ტექსტისთვის არსებობს 2 ცალკეული გზა: სწრაფი და მყარი. ორივე მოითხოვს პლატფორმის სპეციფიკურ მხარდაჭერას (ხორციელდება პორტის მხარეს), მაგრამ Fast– მა მხოლოდ უნდა იცოდეს, თუ როგორ უნდა დაბლოკოს გლიფები (რაც WebKit მალავს პლატფორმისთვის), როდესაც რთული მთლიანად უბიძგებს სტრიქონების გაწევას პლატფორმის დონეზე და უბრალოდ ამბობს, რომ დახაზეთ.

”WebKit სენდვიჩს ჰგავს. წინააღმდეგ შემთხვევაში, ქრომის შემთხვევაში, ეს უფრო თაკოს ჰგავს. გემრიელი tacos ვებ ტექნოლოგიებიდან.
დიმიტრი გლაზკოვი, Chrome WebKit ჰაკერი. ვებ კომპონეტებისა და ჩრდილოვანი დომენის ჩემპიონი.

მოდით, გავაფართოვოთ ჩვენი მიმოხილვა, რომ გადავხედოთ რამდენიმე პორტს და რამდენიმე ქვესისტემას. ქვემოთ მოცემულია WebKit– ის ხუთი პორტი, გაითვალისწინეთ, თუ როგორ განსხვავდება ხელსაწყოთა ნაკრები თითოეული, საერთო კომპონენტების მიუხედავად:

Chrome (OS X) Safari (OS X) QtWebKit Android ბრაუზერი Chrome- ისთვის iOS
გაწევა სკია CoreGraphics QtGui Android სტეკი / Skia CoreGraphics
ქსელში ჩართვა ქრომის ქსელის დასტა CF ქსელი QtNetwork Chromium- ის ქსელის დასტის ჩანგალი ქრომის დასტა
შრიფტები CoreText Skia– ს საშუალებით CoreText Qt შინაგანი Android სტეკი CoreText
JavaScript V8 JavaScriptCore სს (V8 გამოიყენება Qt- ის სხვაგან) V8 JavaScriptCore (JITting– ის გარეშე) *

* სქოლიო Chrome– ის შესახებ IOS– ისთვის. ის იყენებს UIWebView– ს, როგორც ალბათ იცით. შესაბამისად UIWebView– ის შესაძლებლობებთან, ეს ნიშნავს, რომ მას შეუძლია გამოიყენოს მხოლოდ იგივე გაწევის ძრავა, როგორც Mobile Safari, JavaScriptCore (არა V8) და ერთი ძაფიანი მოდელი. ამასთან, ზოგიერთი კოდი ნასესხებია Chromium– ისგან, როგორიცაა ქსელი, სანიშნეების სინქრონიზაციის ინფრასტრუქტურა, omnibox, მეტრიკა და ავარიული შემთხვევის შესახებ შეტყობინება. (ასევე, JavaScript ძალიან იშვიათად წარმოადგენს მობილური ტელეფონის გადაჭიმვას, რომ JITting შემდგენლის ნაკლებობას მინიმალური გავლენა აქვს.)

კარგი, მაშ სად მოვედით?

ასე რომ, ახლა ყველა WebKit სრულიად განსხვავებულია. Მეშინია.

არ ღირს! WebKit– ის განლაგებატესტის გაშუქება დიდია. (ბოლოს დაითვალა 28,000 ტესტი) და არა მხოლოდ არსებული ფუნქციების, არამედ ყველა აღმოჩენილი რეგრესიისთვის. სინამდვილეში, ყოველთვის, როდესაც შეიტყობთ ახალ ან "საიდუმლო" DOM \u200b\u200b/ CSS / HTML-5 მახასიათებლებს, "layoutTest" სატესტო პაკეტებს, როგორც წესი, აქვთ მინიმალური დემო დემო.

გარდა ამისა, W3C ცდილობს შეადგინოს ტესტირების კომპლექტი. ეს ნიშნავს, რომ შეიძლება ველოდოთ როგორც WebKit პორტებს, ისე ყველა სხვა ბრაუზერს, რომ ტესტირება მოხდეს იგივე საცდელი კომპლექტით, რაც ხელს შეუწყობს უცნაურობების შემცირებას და უფრო მეტი ურთიერთქმედების ქსელს. ყველა მათთვის, ვინც ყველაფერს აკეთებს იმისათვის, რომ დაესწროს Test The Web Forward ღონისძიებას ... გმადლობთ!

ოპერა ახლახან WebKit- ში გადავიდა. რა მოუვა ამას?

რობერტ ნიმანმა და რობ ჰოუკსმა უკვე ისაუბრეს ამ თემაზე, მაგრამ დავამატებ, რომ განცხადების ერთ-ერთი მნიშვნელოვანი ნაწილი იყო ოპერა გადადის Chromium- ზე... ეს ნიშნავს WebGL, ტილო, HTML5 ფორმებს, 2D გრაფიკის განხორციელებას, ახლა ეს ყველაფერი იგივე იქნება Chrome- სა და Opera- ში. იგივე API და დაბალი დონის განხორციელება. მას შემდეგ, რაც Opera დაფუძნებულია Chromium- ზე, შეიძლება იგრძნოთ, რომ თვლით მუშაობას და შეამოწმებთ თუ არა თავსებადობას Opera და Chrome- ზე.
აქვე უნდა აღვნიშნო, რომ ყველაფერი ოპერის ბრაუზერები გადაითარგმნება Chromium- ზე. ეს არის ოპერა, Windows, Mac, Linux და Opera Mobile (სრულფასოვანი მობილური ბრაუზერი). მაშინაც კი, Opera Mini, წვრილი კლიენტი, გადაინაცვლებს მიმდინარე პრესტოზე დაფუძნებულ რენდერულ ფერმას სხვა Chromium– ზე.

... და WebKit– ის ღამის აგება. Რა არის ეს?

ეს არის WebKit, რომელიც მუშაობს იმავე კოდზე, როგორც Safari (თუმცა ზოგიერთი შიდა ბიბლიოთეკა შეცვლილია). ძირითადად, Apple მართავს მას, ამიტომ ქცევა და მახასიათებლების ნაკრები ემთხვევა იმას, რასაც Safari- ში ნახავთ. ხშირ შემთხვევაში, Apple არის კონსერვატიული, როდესაც საქმე ეხება იმ ფუნქციებს, რომლებსაც სხვა პორტები ახორციელებენ ან ექსპერიმენტებს უტარებენ. ყოველ შემთხვევაში, ანალოგიების გამოსაყენებლად, იფიქრეთ, რომ ... Safari– ისთვის WebKit– ის ღამის აგება Chromium– ს ჰგავს Chrome- სთვის.
  • ვებ ბრაუზერები
  • ვებ დეველოპმენტი
  • დაამატეთ თეგები

    ბრაუზერის ძრავა არის სპეციალური პროგრამა, რომელიც მუშაობს ვებგვერდებთან. იგი ამუშავებს ინტერნეტიდან გადმოტვირთულ HTML გვერდს და გარდაქმნის მის კოდს მომხმარებლებისთვის ნაცნობ წარმომადგენლობად. ინტერნეტ ბრაუზერის ძრავები გამოიყენება როგორც ბრაუზერებში, ასევე ელ.ფოსტის კლიენტებში. ყველა ვებ ბრაუზერი არ არის აგებული საკუთარ უნიკალურ პლატფორმაზე. ბევრი მათგანი იყენებს პოპულარულ და დროში გამოცდილი გადაწყვეტილებებს. ამ სტატიაში განხილულია თუ რა პლატფორმები არსებობს ბრაუზერების მშენებლობისთვის და რით განსხვავდებიან ისინი ერთმანეთისგან.

    რენდერის ძრავის გამოყენებას ბრაუზერების შესაქმნელად ბევრი უპირატესობა აქვს:

    • ხელს უწყობს კოდის შეცდომების ძიებას და აღმოფხვრას.
    • ერთჯერადი კომპონენტის გაუმჯობესების ხელსაყრელი შესაძლებლობა ერთდროულად რამდენიმე პროგრამაში.
    • პროგრამის გრაფიკული ინტერფეისის შეცვლის პროცესი გამარტივებულია.
    • კონკრეტული პროგრამისტის ან კონკრეტული მომხმარებლის საჭიროებებისათვის ახალი პროგრამების შექმნის მარტივია.

    ასეთი გადაწყვეტილებები ძალიან ხშირად გამოიყენება პროგრამირებაში: ვიდეო თამაშების შექმნისას, რთული პროგრამების ოპერაციული სისტემები და ა.შ. ზოგიერთი სპეციალისტი მუშაობს ძრავის გაუმჯობესებასა და ოპტიმიზაციაზე, შემოაქვს მასში ახალი ფუნქციები და სასარგებლო ფუნქციები. სხვები თვითონ არიან შემუშავებული პროგრამის საფუძველზე შექმნილი პროგრამების შექმნით.

    მთავარი მაგალითია Microsoft- ის Trident ძრავა. ეს მხოლოდ მოცემულია კორპორაციის მრავალფეროვან პროგრამებში. ბაზა ვითარდება - ვითარდება წარმოებული პროექტებიც.

    თითოეულ გამოსავალს აქვს საკუთარი დადებითი და უარყოფითი მხარეები. მაგალითად, ბევრი მომხმარებელი ამჩნევს, რომ Mozilla Firefox ბევრად უკეთესად მუშაობს უფრო ღია ჩანართებით, ვიდრე კონკურენცია. ეს არის პლატფორმის მიღწევა, რომელზეც აგებულია ბრაუზერი.

    ტრიდენტი

    როდესაც მომხმარებელი დაყენებს Windows– ის ახალ ოპერაციულ სისტემას, პირველი ვებ – ბრაუზერი, რომელსაც წააწყდება, არის Internet Explorer. აქედან გამომდინარე, მისი ძრავა განხილულია პირველ რიგში.

    Trident, ან MSHTML, საკმაოდ ძველი პროგრამული კომპონენტია, რომელიც Microsoft– მა შექმნა საკუთარი საჭიროებებისათვის. პროექტი მუდმივად ვითარდება 1997 წლიდან. იგი გამოიყენება Microsoft– ის ვებ – ბრაუზერში - Internet Explorer, Outlook mail კლიენტი, Windows Explorer (ფაილების მართვის პროგრამა) და მრავალი სხვა პროგრამა ამ დეველოპერიდან.

    მომხმარებელი ითვლება ბრაუზერის ერთ-ერთ ყველაზე წარუმატებელ ძრავად. მხარს არ უჭერს მესამე მხარის მოდულურ გაფართოებებს - დანამატებს, არასწორად აჩვენებს ბევრ ინტერნეტ გვერდს, არ აქვს ყველაზე სწრაფი სიჩქარე.

    Windows 10 – ის გამოშვებით, Trident პლატფორმა EdgeHTML– ად გადაიქცა, საძირკველად მიიღო მოძველებული, წარუმატებელი ძრავა და შექმნა ახალი, რომელიც აკმაყოფილებს დღევანდელი მომხმარებლების ყველა საჭიროებას. ნიშნულიდან გამომდინარე (პროგრამული მუშაობისა და სიჩქარის ტესტების მიხედვით), Microsoft Edge (ბრაუზერი EdgeHTML– ზეა დაფუძნებული) დაეწია და გადააჭარბა პოპულარულ პროგრამებს, რომლებიც გამოიყენება Google Chrome და Mozilla Firefox ბრაუზერების შესაქმნელად.

    გეკო

    Gecko არის ძრავა, რომელიც გამოიყენება პოპულარულ ინტერნეტ ბრაუზერში Mozilla Firefox და ბევრ სხვა პროგრამაში. პროგრამის საწყისი კოდი თავისუფლად არის ხელმისაწვდომი, ანუ ყველას შეუძლია შექმნას საკუთარი ბრაუზერი ან ელ.ფოსტის კლიენტი Gecko– ს საფუძველზე აბსოლუტურად უფასოდ.

    Gecko- ს კიდევ ერთი უპირატესობაა cross-platform. იგი მუშაობს თანამედროვე ოპერაციული სისტემების აბსოლუტურ უმრავლესობაზე: როგორც პერსონალურ კომპიუტერებზე, ასევე მობილური მოწყობილობებისთვის (განსხვავებით Internet Explorer– ისგან, რომელიც მუშაობს მხოლოდ Windows– ზე).

    Gecko მხარს უჭერს ყველა თანამედროვე სტანდარტსა და ტექნოლოგიას, რომელიც გამოიყენება ვებსაიტების შემუშავებაში. ეს არის ერთ – ერთი ყველაზე პოპულარული ბრაუზერის პლატფორმა. მხარდაჭერა plugins კავშირი. ნიშნების და მომხმარებლების პირადი გამოცდილების თანახმად, ამ ძრავის ბრაუზერები მოიხმარს პერსონალური კომპიუტერის ყველაზე ნაკლებ რესურსებს და სტაბილურად მუშაობს დიდი რაოდენობით ჩანართებით (მაგალითად, რამდენიმე ასეული).

    Gecko– ს საფუძველზე იქმნება პოპულარული ინტერნეტ ბრაუზერი Mozilla Firefox, Thunderbird ფოსტის კლიენტი, Sunbird ამოცანების განმსაზღვრელი და ანონიმური ვებ – ბრაუზერი VPN ტექნოლოგიების ჩამონტაჟებული მხარდაჭერით.

    KHTML

    ბუნდოვანი პლატფორმა, რომელიც გამოიყენებოდა Konqueror, KDE გარემოს ფაილების მენეჯერის შესაქმნელად. მომხმარებლებისთვის, რომლებიც არ იცნობენ Linux ოჯახის ოპერაციულ სისტემებს, საინტერესოა, რადგან ამ პროექტის საფუძველზე შეიქმნა მსოფლიოში ყველაზე პოპულარული ძრავა, რომელსაც შემდეგ განვიხილავთ.

    ვებ – ნაკრები

    ეს ძრავა შეიმუშავა მსოფლიოში ცნობილმა Apple- ის კორპორაციამ ზემოთ ხსენებული ხსნარის - KHTML- ის საფუძველზე. 2001 წელს გამოცემულმა ამ პროექტმა მიიღო უდიდესი განვითარება და გახდა ერთ – ერთი ყველაზე გამოყენებული მსოფლიოში.

    WebKit– ის საფუძველზე შეიქმნა Safari ვებ – ბრაუზერი, რომელსაც სტანდარტულად იყენებენ iOS მოწყობილობებში და პოპულარობით ლიდერობს ბრაუზერებს შორის - Google Chrome. ვებ – გვერდების შინაარსის დამუშავების თანამედროვე პროგრამების აბსოლუტური უმრავლესობა ემყარება WebKit– ს. იგი ასევე გამოიყენება პოპულარულ Steam აპლიკაციაში Valve– სგან PC თამაშები ციფრული განაწილებისთვის.

    Gecko- ს მსგავსი, WebKit არის პლატფორმატიური და შესანიშნავად მუშაობს ყველა პოპულარულ პლატფორმაზე. აჩვენებს მაღალ სტაბილურობას და მუშაობას. უზარმაზარი პოპულარობის გამო, გაფართოებების აბსოლუტური უმრავლესობა შემუშავებულია ამ გადაწყვეტილებისთვის. ასევე გამოიყენება პოპულარულ მობილურ პლატფორმებში, როგორიცაა Android და iOS. ეს არის უფასო ძრავა, ანუ ის ყველას შეუძლია გამოიყენოს უფასოდ საკუთარი აპლიკაციების შესაქმნელად.

    2013 წელს, Google– ის კორპორაციის ახალი ფილიალი, Blink, WebKit– ს გამოეყო. ეს პროექტი საფუძვლად დაედო Chrome 28-ე ვერსიას (და ყველა მომდევნო ვერსიას), ისევე როგორც მის ღია წყაროს ბიძაშვილს - Chromium. ქრომი გამოიყენებოდა რუსეთში პოპულარული Yandex Browser– ის შესაქმნელად. მე –15 ვერსიიდან დაწყებული, Opera– ს ბრაუზერი ასევე გადავიდა Blink– ზე.

    პრესტო

    2003 წელს გამოცემული Presto ბრაუზერის ძრავა გამოყენებულ იქნა Opera– ს საფუძვლად. ის 10 წლის განმავლობაში ვითარდებოდა. 2013 წელს Opera- ს დეველოპერებმა გადაწყვიტეს Presto- ს გადაგდება Google- ის უფრო ძლიერი და პოპულარული Blink- ის სასარგებლოდ. ამ დროისთვის პროექტის განვითარება შეჩერებულია.

    იყო თუ არა ეს სტატია სასარგებლო?

    ამ სტატიაში გადავხედავთ პოპულარულ WebKit ძრავის სამ ბრაუზერს. როდესაც საქმე ეხება ვებ-ბრაუზერის არჩევას, მომხმარებლები ცდილობენ მიმართონ ყველაზე ცნობილ პროგრამებს: Google Chrome, Opera, Mozilla Firefox, Internet Explorer. ამავე დროს, ბევრს ავიწყდება ან არ იცის, რომ იგივე Firefox, Chrome და, სულ ახლახან, Opera იქმნება ღია წყაროების პროექტების საფუძველზე, რაც ნიშნავს, რომ ამ პროგრამების შეცვლა შესაძლებელია.

    ეს შესაძლებლობა მივყავართ იმ ფაქტს, რომ ბევრმა პროგრამისტმა შექმნა პოპულარული ბრაუზერების რამდენიმე ანალოგი, რომლებიც საკმაოდ საინტერესო მახასიათებლებს გვთავაზობენ. მოდით, გადავხედოთ ასეთი პროგრამული უზრუნველყოფის რამდენიმე წარმომადგენელს.

    იგი ვრცელდება უფასოდ, აქვს რუსული ინტერფეისი, მუშაობს Windows, Android, Mac, iOS. ეს ბრაუზერი ათი წლის წინ ცნობილი იყო MyIE2– ის სახელით და დამატებული იყო Internet Explorer– ისთვის, მაგრამ მას შემდეგ ბევრი რამ შეიცვალა და ახლა პროგრამა ჩვეულებრივ იყენებს Webkit– ის ძრავას.

    უახლეს, მე -4 ვერსიაში ბრაუზერი გთავაზობთ რამდენიმე სასარგებლო ფუნქციას, რომელთა შორის ყველაზე საინტერესოა ინფორმაციის "ღრუბელში" შენახვის შესაძლებლობა. ეს საშუალებას იძლევა პროგრამაში გამოიყენოთ ანგარიში სხვადასხვა მოწყობილობებს შორის ინფორმაციის გადასაცემად, იქნება ეს Android გაჯეტი, Apple კამპანიის პროდუქტი ან სტაციონარული კომპიუტერი.

    მიუხედავად იმისა, რომ Maxthon Cloud Browser- ის ინტერფეისი დამზადებულია Chrome- ის სტილში, მას კიდევ მრავალი ფუნქცია აქვს. გვერდითი ზოლი აჩვენებს ხატებს გაფართოებებზე წვდომისთვის. მოსახერხებელია, რომ ერთი დაწკაპუნებით შეგიძლიათ გამორთოთ ან ჩართოთ ყველა დაინსტალირებული დანამატი და შეგიძლიათ ჩამოტვირთოთ ახლები სპეციალური საიტიდან.

    იგი ვრცელდება უფასოდ, აქვს რუსული ინტერფეისი, მუშაობს ვინდოუსზე. კომპანია Comodo- ს პროდუქტი, რომელიც უფრო ცნობილია, როგორც უსაფრთხოების პროგრამული უზრუნველყოფის შემქმნელი. Comodo Dragon აღარ არის განვითარება, არამედ ასამბლეა, რადგან ფუნქციონალური თვალსაზრისით ის დიდად არ განსხვავდება Chrome– ისგან.

    ორიგინალი ბრაუზერისგან ბევრი განსხვავება არ არის და ყველა მათგანი უსაფრთხოების საკითხებს ეხება. პირველი მნიშვნელოვანი განსხვავება Google Chrome– სგან ნამდვილად არის ინკოგნიტო რეჟიმი, Comodo Dragon არ იყენებს უნიკალურ მომხმარებლის ID– ს და HTTP – REFERRER– ს, რაც არ იძლევა მომხმარებელზე თვალის დევნებას ქსელში.

    მეორე განსხვავება მდგომარეობს Comodo– ს მთავარ საქმეში, მომხმარებლის უსაფრთხოებაში. მიიჩნევს, რომ თქვენ გაქვთ თქვენი უსაფრთხო DNS სერვერები ტრაფიკის გადასაცემად. უფრო მეტიც, მომხმარებლის თხოვნით, ტრაფიკი არა მხოლოდ Dragon– დან, არამედ ყველა სხვა აპლიკაციიდან შეიძლება გაიაროს მათზე. უსაფრთხო DNS სერვერები ავტომატურად იბლოკება საიტებზე შესვლას, რომლებიც კომოდოს ვებ – გვერდის ვებ – საფრთხის განსაზღვრის ქსელში აღინიშნა, როგორც არასანდო.

    იგი ვრცელდება უფასოდ, აქვს რუსული ინტერფეისი, მუშაობს ვინდოუსზე. Yandex Browser არის ცოტა ხნის წინ გამოშვებული Chromium– ზე დაფუძნებული ბრაუზერი რუსული კომპანია Yandex– ისგან. ამ პროდუქტში დეველოპერებმა უბრალოდ დაამატეს Yandex სერვისები სწრაფი კავშირების პანელს. ასევე დაემატა და გაუმჯობესდა "Turbo" რეჟიმი, რომლის პოვნაც შესაძლებელია ოპერში. ზოგადად, აღმოჩნდა, რომ არ არის ცუდი ბრაუზერი, რომელიც მიზნად ისახავს Yandex მომხმარებლებს.