SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
‫אחסון מידע ב-5‪HTML‬‬



          ‫רן בר-זיק‬
‫מפתח ‪ PHP‬בחברת ‪HP Software‬‬

    ‫אתר אינטרנט ישראל‬
   ‫‪www.internet-israel.com‬‬
‫שיטות קיימות לאיחסון מידע‬
                ‫• עוגיות מבוססות דפדפן‬
‫ניהול המידע נעשה באמצעות ‪JavaScript‬‬
                   ‫‪document.cookie‬‬
                ‫• עוגיות מבוססות פלאש‬
‫ניהול המידע נעשה באמצעות ‪JavaScript‬‬
                   ‫המתממשק לפלאש‬
‫חסרונות העוגיות‬
          ‫בעוגיה מבוססת ‪:JavaScript‬‬
     ‫1. מקום מוגבל לארבעה קילובייט.‬
               ‫2. קושי בניהול הנתונים.‬

              ‫בעוגיה מבוססת פלאש:‬
‫1. לא ניתן להסתמך על כך שיהיה פלאש‬
                      ‫בכל מכשיר.‬
‫‪localStorage‬‬

‫אחסון בפורמט ‪key=>value‬‬      ‫•‬
             ‫‪ API‬נוח ופשוט‬   ‫•‬
         ‫אחסון של עד 5 ‪Mb‬‬    ‫•‬
   ‫מימוש זהה בכל הדפדפנים‬    ‫•‬
‫נתמך באינטרנט אקספלורר 8‬     ‫•‬
localStorage – API
                            :‫אחסון נתונים‬
localStorage.setItem('KEY', 'VALUE');
                              :‫שליפת נתון‬
var value = localStorage.getItem('KEY');
                              :‫מחיקת נתון‬
localStorage.clear('KEY');
                       :‫מחיקת כל הנתונים‬
localStorage.clear();
localStorage – Chrome
        Debugging
localStorage – FireFox
      Debugging
‫‪SessionStorage‬‬
     ‫אחסון בפורמט ‪key=>value‬‬     ‫•‬
                 ‫‪ API‬נוח ופשוט‬   ‫•‬
             ‫אחסון של עד 5 ‪Mb‬‬    ‫•‬
       ‫מימוש זהה בכל הדפדפנים‬    ‫•‬
    ‫נתמך באינטרנט אקספלורר 8‬     ‫•‬
‫מבחינה חוקית – לא נחשב כעוגיה‬    ‫•‬
sessionStorage – API
                            :‫אחסון נתונים‬
sessionStorage.setItem('KEY', 'VALUE');
                              :‫שליפת נתון‬
var value =
sessionStorage.getItem('KEY');
                              :‫מחיקת נתון‬
sessionStorage.clear('KEY');
                       :‫מחיקת כל הנתונים‬
sessionStorage.clear();
sessionStorage - chrome
       Debugging
sessionStorage - FireFox
       debugging
‫‪Session vs Local‬‬
     ‫המאוחסנים ב-‪localSorage‬‬      ‫• הנתונים‬
         ‫גם לאחר סגירת החלון.‬     ‫נשמרים‬
 ‫הם חד חד ערכיים לכל דומיין.‬      ‫הנתונים‬
‫המאוחסנים ב-‪sessionStorage‬‬        ‫• הנתונים‬
            ‫רק לאורך חיי החלון.‬   ‫נשמרים‬
   ‫הם חד חד ערכיים לכל חלון.‬      ‫הנתונים‬
‫‪Application Cache‬‬
‫• נתמך בפיירפוקס, כרום, אופרה, ספארי‬
              ‫ואינטרנט אקספלורר 01.‬
 ‫• דפדפנים שלא תומכים ב- ‪Application‬‬
         ‫‪ cache‬פשוט מתעלמים ממנו.‬
‫מה ‪ AppCache‬מאפשר לנו?‬
        ‫חיסכון ברוחב פס ומשאבי שרת.‬     ‫•‬
              ‫חווית משתמש טובה יותר.‬    ‫•‬
  ‫מתן אפשרות לגולש לעבוד ללא חיבור‬      ‫•‬
                            ‫לאינטרנט.‬
‫אפשרות להגדיר דפים שיש צורך בחיבור‬      ‫•‬
                       ‫אינטרנט עבורם.‬
           ‫אפשרות להגדרת ‪fallbacks‬‬      ‫•‬
‫הגדרת ה-‪ MIME‬של ‪App Cache‬‬
‫• כל קובץ עם סיומת ‪ appcache‬צריך להיות‬
        ‫מוגש עם ‪ MIME type‬ששמו הוא:‬
                 ‫‪text/cache-manifest‬‬
 ‫• יש צורך בשינוי ההגדרות בשרת שנעשות‬
   ‫בהתאם למערכת ההפעלה של השרת.‬
LinuxApache-‫ ב‬Mime-‫הגדרת ה‬
                mod_rewrite ‫ שיש בהם‬Apache ‫בשרתי‬          •
                                          :‫הוספת השורה‬
           AddType text/cache-manifest appcache
          .‫ של האפליקציה‬root-‫ שנמצא ב‬htaccess-‫אל קובץ ה‬

                mod_rewrite ‫ שאין בהם‬Apache ‫בשרתי‬         •
                                          :‫הוספת השורה‬
                 text/cache-manifest       appcache;
                                                   :‫אל‬
           /user/local/etc/httpd/conf/mime.types

                   :‫ מוסיפים את השורה אל‬nginx ‫בשרתי‬       •
                             /etc/nginx/mime.types
IIS7-‫ ב‬MIME type-‫הגדרת ה‬
  :IIS Manager-‫ ב‬MIME type ‫• איתור‬
'‫ –ב‬IIS7-‫ ב‬MIME type ‫הגדרת‬
cURL ‫ עם‬MIME Type ‫בדיקת‬
HTML-‫ לדף ה‬appcache ‫קישור בין‬
<!DOCTYPE html>
<html lang="en" manifest="/my.appcache">
 // your html document
</html>
‫שלושת חלקי ה-‪appcache‬‬
                              ‫• ‪:CACHE‬‬
‫הדפים שאנו מורים לדפדפן לטעון לתוך ה-‬
                                ‫‪.cache‬‬
                          ‫• ‪:FALLBACK‬‬
‫דפים שאנו מורים לדפדפן להגיש למשתמש‬
    ‫במידה והוא מנסה לגשת למשאבים לא‬
     ‫קיימים כאשר הוא מנותק מהאינטרנט.‬
                          ‫• ‪:NETWORK‬‬
   ‫דפים שאנו מורים לדפדפן לא לשמור ב-‬
                         ‫‪ cache‬לעולם.‬
CACHE MANIFEST
                      appcache ‫קובץ‬
# cache version 1.2

# This is a comment

CACHE:
/css/some.css
/css/some_offline.css
/js/some_screen.js
/img/logo.png
http://example.com/css/styles.css

FALLBACK:
/ /offline.html

NETWORK:
login.php
update.php
‫יש דפדפנים שמבקשים אישור‬
 ‫מהמשתמש על ‪appcache‬‬
‫דיבוג של ‪appcache‬‬
     ‫בכרום‬
‫‪WEB SQL‬‬
                 ‫• התבסס על ‪SQLite‬‬
          ‫• נתמך על ידי ספארי וכרום.‬
‫• ‪ W3C‬הודיעה רשמית על עצירת גיבוש‬
                             ‫התקן.‬
‫‪IndexedDB‬‬
    ‫מסתמן כפתרון המועדף להצבת מסדי‬       ‫•‬
                      ‫נתונים בצד הלקוח‬
 ‫נתמך כרגע ב-‪ FireFox, Chrome‬ו-01‪.IE‬‬     ‫•‬
      ‫סביר להניח שבעתיד ייתמך באופרה‬
                              ‫ובספארי.‬
                    ‫‪Very low level API‬‬   ‫•‬
   ‫מסד נתונים מונחה עצמים (שונה ממסד‬     ‫•‬
‫הנתונים הרלוציוני המוכר לרוב המפתחים).‬
 ‫התקן והאימפלמנטציה מאד לא מגובשים.‬      ‫•‬
‫יצירת מסד נתונים‬
          ‫בדיקת דפדפן ומימוש‬
var indexedDB = window.indexedDB ||
window.webkitIndexedDB || window.mozIndexedDB;

if ('webkitIndexedDB' in window) {
       window.IDBTransaction =
window.webkitIDBTransaction;
       window.IDBKeyRange =
window.webkitIDBKeyRange;
}
‫יצירה והתחברות למסד נתונים‬
                                                       :‫התחברות‬
var request = indexedDB.open('MyTestDatabase');
                                                  :callback ‫יצירת‬
request.onsuccess = function(event){}
                                              :‫יצירת אובייקט מידע‬
var db = event.target.result;
             var request = db.setVersion('1.2');
             request.onsuccess = function(event){
                     console.log("Success version.");
             if(!db.objectStoreNames.contains('family')){
                     console.log("Creating objectStore");
                     db.createObjectStore('family');
             }
‫יצירת טרנזקציה ראשונית‬
var transaction = db.transaction([],
                IDBTransaction.READ_WRITE,
2000);
            transaction.oncomplete = function(){
                  console.log("Success
transaction");
           };
‫הכנסת מידע‬
var objectStore =
transaction.objectStore('family');
objectStore.put('something').onsuccess =
function(event) {
     console.log("Saved record with id " +
event.result);


                                }
‫דוגמאות חיות‬
‫• דוגמאות וסקריפטים רלוונטיים יפורסמו‬
               ‫באתר אינטרנט ישראל:‬
          ‫‪www.internet-israel.com‬‬

                           ‫תודה רבה!‬

Más contenido relacionado

Destacado

Web Technologies
Web TechnologiesWeb Technologies
Web TechnologiesLior Zamir
 
SQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתוניםSQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתוניםמורן אלקובי
 
בניית אתרים שיעור ראשון
בניית אתרים שיעור ראשוןבניית אתרים שיעור ראשון
בניית אתרים שיעור ראשוןalechko.name
 
SQL - מודל ישויות קשרים
SQL - מודל ישויות קשריםSQL - מודל ישויות קשרים
SQL - מודל ישויות קשריםמורן אלקובי
 
5 P&C underwriting metrics to increase profitability
5 P&C underwriting metrics to increase profitability5 P&C underwriting metrics to increase profitability
5 P&C underwriting metrics to increase profitabilityGrant Thornton LLP
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIhabib_786
 
The ASP.NET Web API for Beginners
The ASP.NET Web API for BeginnersThe ASP.NET Web API for Beginners
The ASP.NET Web API for BeginnersKevin Hazzard
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsIdo Flatow
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTDr. Awase Khirni Syed
 
LA CREACIÓ vista per nens i nenes de 3r de Primària
LA CREACIÓ vista per nens i nenes de 3r de PrimàriaLA CREACIÓ vista per nens i nenes de 3r de Primària
LA CREACIÓ vista per nens i nenes de 3r de Primàriaguest8a9b56
 

Destacado (14)

Web Technologies
Web TechnologiesWeb Technologies
Web Technologies
 
SQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתוניםSQL - שפת הגדרת הנתונים
SQL - שפת הגדרת הנתונים
 
בניית אתרים שיעור ראשון
בניית אתרים שיעור ראשוןבניית אתרים שיעור ראשון
בניית אתרים שיעור ראשון
 
SQL - מודל ישויות קשרים
SQL - מודל ישויות קשריםSQL - מודל ישויות קשרים
SQL - מודל ישויות קשרים
 
5 P&C underwriting metrics to increase profitability
5 P&C underwriting metrics to increase profitability5 P&C underwriting metrics to increase profitability
5 P&C underwriting metrics to increase profitability
 
Asp.net
Asp.net Asp.net
Asp.net
 
SQL - מודל הנתונים
SQL - מודל הנתוניםSQL - מודל הנתונים
SQL - מודל הנתונים
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
The ASP.NET Web API for Beginners
The ASP.NET Web API for BeginnersThe ASP.NET Web API for Beginners
The ASP.NET Web API for Beginners
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
ASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP FundamentalsASP.NET Web API and HTTP Fundamentals
ASP.NET Web API and HTTP Fundamentals
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENTC# ASP.NET WEB API APPLICATION DEVELOPMENT
C# ASP.NET WEB API APPLICATION DEVELOPMENT
 
LA CREACIÓ vista per nens i nenes de 3r de Primària
LA CREACIÓ vista per nens i nenes de 3r de PrimàriaLA CREACIÓ vista per nens i nenes de 3r de Primària
LA CREACIÓ vista per nens i nenes de 3r de Primària
 

Similar a אחסון מידע - ל-websql ו-indexdb רן בר-זיק

Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Ram Kedem
 
6 sql explorer - powershell dba
6   sql explorer - powershell dba6   sql explorer - powershell dba
6 sql explorer - powershell dbasqlserver.co.il
 
How to backup your Wordpress Database & Site
How to backup your Wordpress Database & SiteHow to backup your Wordpress Database & Site
How to backup your Wordpress Database & SiteHezi Abrass
 
PHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשוןPHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשוןShahar Evron
 
DoAT - mobile web-app development
DoAT - mobile web-app developmentDoAT - mobile web-app development
DoAT - mobile web-app developmentRan Byron
 
היכרות עם וורדפרס ועוד חן כהן
היכרות עם וורדפרס ועוד   חן כהןהיכרות עם וורדפרס ועוד   חן כהן
היכרות עם וורדפרס ועוד חן כהןMiriam Schwab
 
Managing oracle Database Instance
Managing oracle Database InstanceManaging oracle Database Instance
Managing oracle Database InstanceRam Kedem
 
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?Boris Chernyak
 
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
 שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best... שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...Israeli Internet Association technology committee
 
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011Israeli Internet Association technology committee
 
IBM WebSphere Portal 6.1 - Executive Overview
IBM WebSphere Portal 6.1 - Executive OverviewIBM WebSphere Portal 6.1 - Executive Overview
IBM WebSphere Portal 6.1 - Executive OverviewDvir Reznik
 
How To Build Your Own Website Tip 17
How To Build Your Own Website Tip 17How To Build Your Own Website Tip 17
How To Build Your Own Website Tip 17לילך דרור
 

Similar a אחסון מידע - ל-websql ו-indexdb רן בר-זיק (20)

Html5
Html5Html5
Html5
 
Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)Exploring Oracle Database Architecture (Hebrew)
Exploring Oracle Database Architecture (Hebrew)
 
6 sql explorer - powershell dba
6   sql explorer - powershell dba6   sql explorer - powershell dba
6 sql explorer - powershell dba
 
PHP Scalability
PHP ScalabilityPHP Scalability
PHP Scalability
 
How to backup your Wordpress Database & Site
How to backup your Wordpress Database & SiteHow to backup your Wordpress Database & Site
How to backup your Wordpress Database & Site
 
PHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשוןPHP ואבטחה - חלק ראשון
PHP ואבטחה - חלק ראשון
 
DoAT - mobile web-app development
DoAT - mobile web-app developmentDoAT - mobile web-app development
DoAT - mobile web-app development
 
היכרות עם וורדפרס ועוד חן כהן
היכרות עם וורדפרס ועוד   חן כהןהיכרות עם וורדפרס ועוד   חן כהן
היכרות עם וורדפרס ועוד חן כהן
 
Managing oracle Database Instance
Managing oracle Database InstanceManaging oracle Database Instance
Managing oracle Database Instance
 
Html 5 Usability UPA 2009 - Dr. Yesha Sivan
Html 5 Usability UPA 2009 - Dr. Yesha Sivan Html 5 Usability UPA 2009 - Dr. Yesha Sivan
Html 5 Usability UPA 2009 - Dr. Yesha Sivan
 
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
החלטתם שהארגון שלכם צריך אוטומציה חכמה. מה עכשיו?
 
Html 5 For V Ps
Html 5 For V Ps Html 5 For V Ps
Html 5 For V Ps
 
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
 שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best... שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
שיטות לפיתוח אפליקציות ווב למכשירים ניידים על פי Mobile Web Application Best...
 
Selenium WebDriver
Selenium WebDriverSelenium WebDriver
Selenium WebDriver
 
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011
סקירת טכנולוגיות W3C חדשות שלא תראו אפילו בגירסאות ליליות - 12.2011
 
react-he.pdf
react-he.pdfreact-he.pdf
react-he.pdf
 
Expand Cli Command
Expand Cli CommandExpand Cli Command
Expand Cli Command
 
Mobile web design Eyal Sela
Mobile web design   Eyal SelaMobile web design   Eyal Sela
Mobile web design Eyal Sela
 
IBM WebSphere Portal 6.1 - Executive Overview
IBM WebSphere Portal 6.1 - Executive OverviewIBM WebSphere Portal 6.1 - Executive Overview
IBM WebSphere Portal 6.1 - Executive Overview
 
How To Build Your Own Website Tip 17
How To Build Your Own Website Tip 17How To Build Your Own Website Tip 17
How To Build Your Own Website Tip 17
 

Más de Israeli Internet Association technology committee

יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידיםיחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידיםIsraeli Internet Association technology committee
 

Más de Israeli Internet Association technology committee (20)

נגישות באינטרנט לאנשים עם מוגבלות, הלכה למעשה
נגישות באינטרנט לאנשים עם מוגבלות, הלכה למעשהנגישות באינטרנט לאנשים עם מוגבלות, הלכה למעשה
נגישות באינטרנט לאנשים עם מוגבלות, הלכה למעשה
 
ליאור שיאון - מפת מקלטים
ליאור שיאון - מפת מקלטיםליאור שיאון - מפת מקלטים
ליאור שיאון - מפת מקלטים
 
טל גלילי - אושאידי
טל גלילי - אושאידיטל גלילי - אושאידי
טל גלילי - אושאידי
 
אמרי באומר - האקתון חוסן לאומי
אמרי באומר - האקתון חוסן לאומיאמרי באומר - האקתון חוסן לאומי
אמרי באומר - האקתון חוסן לאומי
 
אורי סגל - מרחב מוגן
אורי סגל - מרחב מוגןאורי סגל - מרחב מוגן
אורי סגל - מרחב מוגן
 
אופיר בן אבי - ממשל זמין
אופיר בן אבי - ממשל זמיןאופיר בן אבי - ממשל זמין
אופיר בן אבי - ממשל זמין
 
יובל טיסונה - המלחמה הבאה
יובל טיסונה - המלחמה הבאהיובל טיסונה - המלחמה הבאה
יובל טיסונה - המלחמה הבאה
 
עמוס גבע - StandWithUs
עמוס גבע - StandWithUsעמוס גבע - StandWithUs
עמוס גבע - StandWithUs
 
בן לנג - Iron Dome Count
בן לנג - Iron Dome Countבן לנג - Iron Dome Count
בן לנג - Iron Dome Count
 
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידיםיחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
יחידת לימוד – תכנון ופיתוח אפליקציות ווב למכשירים ניידים
 
האם ויקיפדיה מונגשת לאנשים עם מוגבלויות?
האם ויקיפדיה מונגשת לאנשים עם מוגבלויות? האם ויקיפדיה מונגשת לאנשים עם מוגבלויות?
האם ויקיפדיה מונגשת לאנשים עם מוגבלויות?
 
IPv6 - Global Adoption - Ran Liberman
IPv6 - Global Adoption - Ran LibermanIPv6 - Global Adoption - Ran Liberman
IPv6 - Global Adoption - Ran Liberman
 
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
implementing IPv6 in an ISP network, case study and lessons learned - Amos Ro...
 
IPv6 training guide - Yuval Shaul
IPv6 training guide - Yuval ShaulIPv6 training guide - Yuval Shaul
IPv6 training guide - Yuval Shaul
 
פתיחה - יום השקת IPv6 בישראל
פתיחה - יום השקת IPv6 בישראלפתיחה - יום השקת IPv6 בישראל
פתיחה - יום השקת IPv6 בישראל
 
How I learned to stop writing CSS and start writing SASS
How I learned to stop writing CSS and start writing SASSHow I learned to stop writing CSS and start writing SASS
How I learned to stop writing CSS and start writing SASS
 
אבטחת מידע לעובדים בארגון
אבטחת מידע לעובדים בארגוןאבטחת מידע לעובדים בארגון
אבטחת מידע לעובדים בארגון
 
מכללת ספיר - W3C - תהליכים וטכנולוגיות
מכללת ספיר - W3C - תהליכים וטכנולוגיותמכללת ספיר - W3C - תהליכים וטכנולוגיות
מכללת ספיר - W3C - תהליכים וטכנולוגיות
 
HTML5, ווב נייד ותקנים פתוחים ברשת
HTML5, ווב נייד ותקנים פתוחים ברשת HTML5, ווב נייד ותקנים פתוחים ברשת
HTML5, ווב נייד ותקנים פתוחים ברשת
 
HTML5FEST - פתיחה
HTML5FEST - פתיחהHTML5FEST - פתיחה
HTML5FEST - פתיחה
 

אחסון מידע - ל-websql ו-indexdb רן בר-זיק

  • 1. ‫אחסון מידע ב-5‪HTML‬‬ ‫רן בר-זיק‬ ‫מפתח ‪ PHP‬בחברת ‪HP Software‬‬ ‫אתר אינטרנט ישראל‬ ‫‪www.internet-israel.com‬‬
  • 2. ‫שיטות קיימות לאיחסון מידע‬ ‫• עוגיות מבוססות דפדפן‬ ‫ניהול המידע נעשה באמצעות ‪JavaScript‬‬ ‫‪document.cookie‬‬ ‫• עוגיות מבוססות פלאש‬ ‫ניהול המידע נעשה באמצעות ‪JavaScript‬‬ ‫המתממשק לפלאש‬
  • 3. ‫חסרונות העוגיות‬ ‫בעוגיה מבוססת ‪:JavaScript‬‬ ‫1. מקום מוגבל לארבעה קילובייט.‬ ‫2. קושי בניהול הנתונים.‬ ‫בעוגיה מבוססת פלאש:‬ ‫1. לא ניתן להסתמך על כך שיהיה פלאש‬ ‫בכל מכשיר.‬
  • 4. ‫‪localStorage‬‬ ‫אחסון בפורמט ‪key=>value‬‬ ‫•‬ ‫‪ API‬נוח ופשוט‬ ‫•‬ ‫אחסון של עד 5 ‪Mb‬‬ ‫•‬ ‫מימוש זהה בכל הדפדפנים‬ ‫•‬ ‫נתמך באינטרנט אקספלורר 8‬ ‫•‬
  • 5. localStorage – API :‫אחסון נתונים‬ localStorage.setItem('KEY', 'VALUE'); :‫שליפת נתון‬ var value = localStorage.getItem('KEY'); :‫מחיקת נתון‬ localStorage.clear('KEY'); :‫מחיקת כל הנתונים‬ localStorage.clear();
  • 8. ‫‪SessionStorage‬‬ ‫אחסון בפורמט ‪key=>value‬‬ ‫•‬ ‫‪ API‬נוח ופשוט‬ ‫•‬ ‫אחסון של עד 5 ‪Mb‬‬ ‫•‬ ‫מימוש זהה בכל הדפדפנים‬ ‫•‬ ‫נתמך באינטרנט אקספלורר 8‬ ‫•‬ ‫מבחינה חוקית – לא נחשב כעוגיה‬ ‫•‬
  • 9. sessionStorage – API :‫אחסון נתונים‬ sessionStorage.setItem('KEY', 'VALUE'); :‫שליפת נתון‬ var value = sessionStorage.getItem('KEY'); :‫מחיקת נתון‬ sessionStorage.clear('KEY'); :‫מחיקת כל הנתונים‬ sessionStorage.clear();
  • 12. ‫‪Session vs Local‬‬ ‫המאוחסנים ב-‪localSorage‬‬ ‫• הנתונים‬ ‫גם לאחר סגירת החלון.‬ ‫נשמרים‬ ‫הם חד חד ערכיים לכל דומיין.‬ ‫הנתונים‬ ‫המאוחסנים ב-‪sessionStorage‬‬ ‫• הנתונים‬ ‫רק לאורך חיי החלון.‬ ‫נשמרים‬ ‫הם חד חד ערכיים לכל חלון.‬ ‫הנתונים‬
  • 13. ‫‪Application Cache‬‬ ‫• נתמך בפיירפוקס, כרום, אופרה, ספארי‬ ‫ואינטרנט אקספלורר 01.‬ ‫• דפדפנים שלא תומכים ב- ‪Application‬‬ ‫‪ cache‬פשוט מתעלמים ממנו.‬
  • 14. ‫מה ‪ AppCache‬מאפשר לנו?‬ ‫חיסכון ברוחב פס ומשאבי שרת.‬ ‫•‬ ‫חווית משתמש טובה יותר.‬ ‫•‬ ‫מתן אפשרות לגולש לעבוד ללא חיבור‬ ‫•‬ ‫לאינטרנט.‬ ‫אפשרות להגדיר דפים שיש צורך בחיבור‬ ‫•‬ ‫אינטרנט עבורם.‬ ‫אפשרות להגדרת ‪fallbacks‬‬ ‫•‬
  • 15. ‫הגדרת ה-‪ MIME‬של ‪App Cache‬‬ ‫• כל קובץ עם סיומת ‪ appcache‬צריך להיות‬ ‫מוגש עם ‪ MIME type‬ששמו הוא:‬ ‫‪text/cache-manifest‬‬ ‫• יש צורך בשינוי ההגדרות בשרת שנעשות‬ ‫בהתאם למערכת ההפעלה של השרת.‬
  • 16. LinuxApache-‫ ב‬Mime-‫הגדרת ה‬ mod_rewrite ‫ שיש בהם‬Apache ‫בשרתי‬ • :‫הוספת השורה‬ AddType text/cache-manifest appcache .‫ של האפליקציה‬root-‫ שנמצא ב‬htaccess-‫אל קובץ ה‬ mod_rewrite ‫ שאין בהם‬Apache ‫בשרתי‬ • :‫הוספת השורה‬ text/cache-manifest appcache; :‫אל‬ /user/local/etc/httpd/conf/mime.types :‫ מוסיפים את השורה אל‬nginx ‫בשרתי‬ • /etc/nginx/mime.types
  • 17. IIS7-‫ ב‬MIME type-‫הגדרת ה‬ :IIS Manager-‫ ב‬MIME type ‫• איתור‬
  • 18. '‫ –ב‬IIS7-‫ ב‬MIME type ‫הגדרת‬
  • 19. cURL ‫ עם‬MIME Type ‫בדיקת‬
  • 20. HTML-‫ לדף ה‬appcache ‫קישור בין‬ <!DOCTYPE html> <html lang="en" manifest="/my.appcache"> // your html document </html>
  • 21. ‫שלושת חלקי ה-‪appcache‬‬ ‫• ‪:CACHE‬‬ ‫הדפים שאנו מורים לדפדפן לטעון לתוך ה-‬ ‫‪.cache‬‬ ‫• ‪:FALLBACK‬‬ ‫דפים שאנו מורים לדפדפן להגיש למשתמש‬ ‫במידה והוא מנסה לגשת למשאבים לא‬ ‫קיימים כאשר הוא מנותק מהאינטרנט.‬ ‫• ‪:NETWORK‬‬ ‫דפים שאנו מורים לדפדפן לא לשמור ב-‬ ‫‪ cache‬לעולם.‬
  • 22. CACHE MANIFEST appcache ‫קובץ‬ # cache version 1.2 # This is a comment CACHE: /css/some.css /css/some_offline.css /js/some_screen.js /img/logo.png http://example.com/css/styles.css FALLBACK: / /offline.html NETWORK: login.php update.php
  • 23. ‫יש דפדפנים שמבקשים אישור‬ ‫מהמשתמש על ‪appcache‬‬
  • 25. ‫‪WEB SQL‬‬ ‫• התבסס על ‪SQLite‬‬ ‫• נתמך על ידי ספארי וכרום.‬ ‫• ‪ W3C‬הודיעה רשמית על עצירת גיבוש‬ ‫התקן.‬
  • 26. ‫‪IndexedDB‬‬ ‫מסתמן כפתרון המועדף להצבת מסדי‬ ‫•‬ ‫נתונים בצד הלקוח‬ ‫נתמך כרגע ב-‪ FireFox, Chrome‬ו-01‪.IE‬‬ ‫•‬ ‫סביר להניח שבעתיד ייתמך באופרה‬ ‫ובספארי.‬ ‫‪Very low level API‬‬ ‫•‬ ‫מסד נתונים מונחה עצמים (שונה ממסד‬ ‫•‬ ‫הנתונים הרלוציוני המוכר לרוב המפתחים).‬ ‫התקן והאימפלמנטציה מאד לא מגובשים.‬ ‫•‬
  • 27. ‫יצירת מסד נתונים‬ ‫בדיקת דפדפן ומימוש‬ var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB; if ('webkitIndexedDB' in window) { window.IDBTransaction = window.webkitIDBTransaction; window.IDBKeyRange = window.webkitIDBKeyRange; }
  • 28. ‫יצירה והתחברות למסד נתונים‬ :‫התחברות‬ var request = indexedDB.open('MyTestDatabase'); :callback ‫יצירת‬ request.onsuccess = function(event){} :‫יצירת אובייקט מידע‬ var db = event.target.result; var request = db.setVersion('1.2'); request.onsuccess = function(event){ console.log("Success version."); if(!db.objectStoreNames.contains('family')){ console.log("Creating objectStore"); db.createObjectStore('family'); }
  • 29. ‫יצירת טרנזקציה ראשונית‬ var transaction = db.transaction([], IDBTransaction.READ_WRITE, 2000); transaction.oncomplete = function(){ console.log("Success transaction"); };
  • 30. ‫הכנסת מידע‬ var objectStore = transaction.objectStore('family'); objectStore.put('something').onsuccess = function(event) { console.log("Saved record with id " + event.result); }
  • 31. ‫דוגמאות חיות‬ ‫• דוגמאות וסקריפטים רלוונטיים יפורסמו‬ ‫באתר אינטרנט ישראל:‬ ‫‪www.internet-israel.com‬‬ ‫תודה רבה!‬