วันอังคารที่ 12 มิถุนายน พ.ศ. 2555

Browser และปัญหา

Browser คืออะไร?

บางคนอาจจะรู้จัก บางคนอาจจะไม่รู้จัก ผมจะอธิบายสั้นๆเลย Browser ก็คือ ชื่อเต็มๆ มาจาก Web Browser มีไว้สำหรับเปิดดูเว็บไซต์ต่างๆ บางคนถึงตรงนี้คงจะเก็ตแล้วว่า คืออะไร ถูกต้องแล้วคาบ บางคนอาจจะเรียก Internet หรือ Internet Explorer หรือรุ่นใหม่อาจจะคิดว่าคือ Google Chrome ถูกทั้งหมดนั่นแหละครับ ไม่ผิดเลย แต่ภาษาเรียกเขาเรียกรวมๆ ว่า Web Browser โดยมี แต่ละค่ายออกมาอย่าง
Microsoft- Internet Explorer(IE) ล่าสุดก็ IE10 Metro Browser ที่ครองแชมยาวนานที่สุด
Mozilla - Mozilla FireFox บางคนเรียกหมาไฟ ทำให้คนภายนอกไม่เข้าใจก็มี ล่าสุดนี่ก็ 13 ไปแล้ว
Google - Google Chorme ค่าย Search Engine ยักษ์ใหญ่อย่างGoogle ออกกับเขาด้วย ล่าสุดก็ 20
Apple- Apple Safari ตัวใหญ่ของเขาเลยทีเดียวหลายคนอาจจะคุ้นๆบน Iphone,IPAD นะครับ
นอกจากนี้ยังมีใน Linux อีก เช่น Opera เป็นต้น

ที่นี้จะพูดถึงปัญหา ของ Browser ล่ะนะครับ
1. Internet Explorer 9 หรือ IE9  กิน Memory พอๆกับคนอื่นๆ และก็ไม่ค่อยรอบรับ HTML5 ได้คะแนนแค่ 138 ที่สำคัญพอเปิดหน้า Tab เยอะแบ่งตัวออกมาประมวลผลอีก แต่จุดเด่นก็คือความคล่องตัวที่ผู้ใช้จะใช้ง่ายมาก เพราะหน้าตาไม่เปลี่ยนเท่าไร ตั้งแต่แรก และสำหรับ Developer เองก็มีการพัฒนาขึ้นมามากเลยทีเดียว

2. Mozilla Firefox - FF13
กิน Memory ลดลงจาก เวอร์ชั่นก่อนหน้า นิดหน่อย มีควา มSmooth มากขึ้นในการเลื่อน Mouse Wheel และก็เร็วขึ้น แต่ Memory ที่กินก็ยังเยอะอยู่ แต่ดีหน่อย ไม่แตกหน่อ ในการ กิน Memory ข้อดีคือรองรับ Html5 มากหน่อยได้คะแนนไป 330 ห่างกับ IE9 เกือบเท่าตัว

3. Google Chorme19 สำหรับผมตัวนี้ถึงขั้นเลวร้ายสำหรับผม เพราะ มันแบ่งตัวมาประมวลผลมากมายเกินกว่า 10 ซะอีก น่ากลัวมาก ข้อดีคือเร็วมาก เพราะการแบ่งการประมวลผลหลายๆ EXE ทำให้ ช่วยๆกันประมวลหรือการแบ่งเป็น Thread นั่นเอง แต่ข้อเสียคือ เครื่องคุณเวลาเปิดโปรแกรมอื่นๆเมื่อเปิดมันไปด้วยอาจจะรู้สึกว่า ทำไมเครื่องมันกระตุกๆ Memory เต็มง่ายๆ เพราะมัน ซัดซะกระจาย - - แต่รายนี้ เป็นคนผลักดัน HTML5 เต็มตัวอยู่แล้วเลยได้คะแนนไปทิ้งห่าง 402 เรียกได้ว่าถ้าอยากทำเว็บ HTML5 นิ ก็ ทดสอบกับ Chorme นิ จะแจ่มสุดแต่ถ้าไปกับ IE9 คุณก็ เกือบจะปวดหัวกับมันเลย


4. Apple Safari 5.1 (On Windows7) ต้องบอกว่ากิน Memory ต่ำมากๆ เมื่อเทียบกับ Browser ตัวอื่น สวยและก็เร็วอีกตะหาก ตามสไตล์ Apple และก็ไม่แบ่งตัวเพื่อประมวลผลมากมาย เหมือนกับ Chorme แต่กลับ แบ่งตามความใหญ่ของขนาด Memory ที่ใช้ หรือก็คือ มีการแบ่งตัวประมวลผลเหมือนกับ ตัวอื่น(ยกเว้น FF) แต่ว่า จะกิน Memory น้อยกว่า ตัวอื่นๆน่ะเอง การแบ่งก็ขึ้นอยู่กับว่า เปิดกี่ TAB ยิ่ง TAB มาก จะยิ่งกิน Memory มากๆก็เลยแบ่งตัวออกมาซะ เพื่อให้ประมวลผลเร็วขึ้น แต่ข้อเสียคือ มันไม่ค่อยถูกกับ Mouse Wheel หรือ ปุ่ม Scroll ตรงกลางที่ไว้สำหรับเลื่อนดูข้างล่างซะเท่าไร ส่วน HTML5 ก็ได้คะแนนไป 319 ก็ไล่ๆกับพี่ FF 


ถึงตรงนี้อย่างที่เห็น ข้อดีข้อเสียกัน โดยส่วนตัวผมว่า FF13 คงจะดีที่สุด ณ ตอนนี้ หลังจากที่ FF12 มันกิน Memory ซะมากมาย จนเซ็งเลยหันไปใช้ Chorme แต่ก็รู้ว่า Chorme มันกินมากกว่าซะอีก Y_Y เลยกลับมาอัพเดตเป็น FF13 และกลับมาใช้เหมือนเดิม(แต่มันก็ยัง กิน Memroyอยู่นะแต่ประมวลผลดีขึ้น และกินน้อยลงนิดหน่อย) แต่ตอนนี้เริ่มอยากใช้ Safari เหมือนกัน แต่คิดว่าคงติดปัญหากับการแสดงผลของเว็บเก่าๆเป็นแน่แท้ Y_Y เพราะApple ก็ไม่ต่างจาก Microsoft คือ ชอบทำอะไรแตกต่างอยู่นิดหน่อยเพื่อให้ตัวเอง เด่นกว่าคนอื่นๆ Y_Y ก็เป็นปัญหาของ Web Developer ต่อไป
เว็บเทส Html5 คือเว็บ html5test.com นะครับ

วันเสาร์ที่ 5 พฤษภาคม พ.ศ. 2555

Silverlight Check Out of browser(C Sharp)

โค้ดสำหรับการเช็คว่า มีการรัน Application Out of browser รันอยู่รึเปล่า

            if (Application.Current.IsRunningOutOfBrowser)
            {
                btn_install.IsEnabled = false;
                btn_update.IsEnabled = true;
            }
            else
            {
                btn_install.IsEnabled = true;
                btn_update.IsEnabled = false  ;
            }
จะเป็นการเช็คว่า มีการรันอยู่รึเปล่าต่อไปก็เช็คให้มีการอัพเดตใหม่
 
//download update out of browser
Application.Current.CheckAndDownloadUpdateAsync();
Application.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(Current_CheckAndDownloadUpdateCompleted);
void Current_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
        {
            if (e.UpdateAvailable) MessageBox.Show("Update complete");
        }