ajax javascript tip

Leave a comment

Chat with ASP.NET and Ajax

http://www.codegod.de/WebAppCodeGod/a-chat-with-aspnet-and-ajax-AID356.aspx

http://www.codegod.de/WebAppCodeGod/a-chat-with-aspnet-and-ajax-AID356.aspx

 

http://particletree.com/features/preloading-data-with-ajax-and-json/

 

Alternate Ajax Techniques, Part 1

http://www.webreference.com/programming/ajax_tech/

Alternate Ajax Techniques, Part 2

http://www.webreference.com/programming/ajax_tech2/

 

http://www.dustindiaz.com/top-ten-javascript/

Advertisements

Object serialization คืออะไร?

Leave a comment

คือ การแปลงออปเจคให้อยู่ในรูปของไบต์สตรีม (byte stream) 

1. มีไว้เพื่อใช้ในการเก็บออปเจคไว้ในไฟล์ เพื่อเรียกอ่านและแปลงกลับ (deserialization) เป็นออปเจคในภายหลัง เช่น เราเซฟออปเจคที่เก็บข้อมูล application parameter บางตัวไว้ลงในไฟล์หลังจากโปรแกรมจบ เพื่อว่าในการรันโปรแกรมครั้งต่อไปจะได้อ่านพารามิเตอร์เหล่านั้นกลับเข้ามา วิธีนี้ไม่ค่อยเป็นที่นิยมนัก เนื่องจากมีทางเลือกอื่นๆ เช่น เก็บข้อมูลลงในฐานข้อมูล หรือ ใช้ System.Properties หรือใช้ XMLEncoder (ในจาวา 1.4 ขึ้นไป) 

2. มีไว้สำหรับเป็นวิธีส่งออปเจคนั้นไปยังเครื่องอื่น เนื่องจากออปเจคถูกแปลงเป็นไบต์สตรีม จึงสามารถส่งออปเจคนั้นไปที่เครื่องอื่น (object distribution) ในกรณีผ่านเป็นพารามิเตอร์ในการ invoke ออปเจคข้ามเครื่อง (เช่นที่ใช้ใน RMI) หรือเป็นการ migrate object ไปรันที่เครื่องอื่น เป็นต้น

———

Stream มีโครงสร้างพื้นฐานเป็นสายของ Byte ที่วิ่งมาเรื่อย ๆ เหมือนกระแสน้ำ นั่นหมายความว่าคุณสามารถเก็บข้อมูลจาก Stream หรือเขียนอะไรลงไปใน Stream คุณต้องทำงานเป็น Byte เสมอ คือก้อนข้อมูลขนาด 0-255 หลาย ๆ ก้อนต่อกัน ผมขอเรียกว่า Byte Stream

ต่อมาเราพบว่า Byte Stream มันใช้งานได้ยากลำบากมาก เพราะเราต้องทำอะไรบางอย่างเพื่อแปลง byte ที่ได้จากการอ่านข้อมูลจาก Stream ให้กลายเป็นสิ่งที่ต้องการ เช่น String และในทางกลับกันเวลาเขียนข้อมูลลงไปใน Stream ก็ต้องแปลงมันให้กลายเป็น byte ทีละ byte ก่อน จึงจะสามารถเขียนข้อมูลลงไปใน Stream ได้ จึงมีการสร้างตัวกรองขึ้นมา (Filter) โดยตัวกรองมีหน้าที่แปลงข้อมูลขาเข้าหรือขาออกตามแต่หน้าที่ เพื่อทำอะไรบางอย่างก่อนจะปล่อยข้อมูลออกมา หรือใส่ข้อมูลเข้าไปใน Stream

Filter จะไม่เปลี่ยนแปลงตัว Raw Data แต่จะทำการแปลงให้อยู่ในรูปแบบที่ใช้งานได้ง่ายขึ้น เช่น
– BufferedInputStream ทำหน้าที่อ่าน Stream มาเยอะ ๆ แล้วเก็บเอาไว้ในหน่วยความจำ แต่เวลาใช้งานเราใช้งานเสมือนว่าข้อมูลยังส่งอยู่ในสายข้อมูล มีประโยชน์ในการ mark/reset เพื่อย้อนกลับไปยังจุดที่เคยอ่านมาก่อน ซึ่ง Stream จริงๆ ไม่ใช่แบบนั้น (สายน้ำย่อมไม่ไหลย้อนกลับ แต่กักตุนได้)

เปิดโลก Ajax ตอน JSON

1 Comment

Ajax เป็นเทคโนโลยีที่ทำให้เว็บของเรามีชีวิตชีวามากขึ้น กว่าเว็บที่เราเคยใช้กัน เดิมทีเว็บที่เราเขียนด้วย HTML มันแก้ไขอะไรไม่ได้เลย เปิดมากี่ทีๆ ก็เหมือนเดิมตลอด ให้มีชีวิติชีวากว่านั้นก็อาจจะใช้ CGI หรือ PHP มาช่วยก็ทำให้หน้าเว็บที่เปิดมาเปลี่ยนแปลงไปได้ตามข้อมูลที่เราให้ ( + อื่นๆ ) เพื่อเพิ่มชีวิตชีวามากกว่านั้นเรายังสามารถใช้ Javascript ที่ทำให้หน้าเว็บเปลี่ยนแปลงไปได้ต่อหน้าต่อตาโดยไม่ต้อง load หน้าใหม่เลย

… ทว่า อย่างไรก็ตาม การใช้ javascript ก็ยังจำกัดอยู่เนื่องจากไม่สามารถไปเรียกข้อมูลจาก server ได้ … ดังนั้น Ajax จึงมีบทบาทในการช่วยใช้ javascript บน web browser เช่น IE และ Firefox แลกเปลี่ยนข้อมูลกับ web server ได้ และแก้ไขหน้าเว็บเดี๋ยวนั้นโดยไม่ต้อง load หน้าใหม่

ปกติรูปแบบข้อมูลที่ใช้ในการแลกเปลี่ยนข้อมูลของ Ajax ก็คือ XML แต่กระนั้นเราก็ต้องมีท่าต่างๆ นานาเพื่อใช้ในการจัดการ xml อีก จะดีกว่าหรือไม่ถ้าหากเราส่งผ่าน data structure แบบพื้นฐานเช่น array และ hash จาก server มาที่ javascript ทางฝั่ง client ได้เลย

ถ้าหากการส่ง array และ hash ไปมาระหว่าง server และ javascript ฝั่ง client สะดวกแล้วหละก็ JSON ก็น่าจะเรียกได้ว่าใช่เลย สมมุติว่าเราต้องการส่งรายชื่อคนผ่าน XML เรา *อาจจะ* ต้องเขียน

<presonlist>  <person> <firstname>กอ</firstname> <lastname>นามสมมุติ</lastname> </person>  <firstname>ธี</firstname> <lastname>นามจริง</lastname> <person> </person> ... ... </personlist>

ตัวอย่างที่ 1

ถ้าเป็น JSON ก็จะใช้ [ ] แทน Array และ { } แทน Hash ( หรือ Associative array ) ก็อาจจะเขียนได้แบบข้างล่าง

[     {"firstname":"กอ", "lastname":"นามสมมุติ"},     {"firstname":"ธี", "lastname":"นามจริง"},    ]

ตัวอย่างที่ 2

ตัวอย่างอาจจะดูลำเอียง ( และชวนเชื่อไปหน่อย ) แต่ว่าก็น่าจะพอทำให้เห็นภาพบ้าง 😛

และประโยชน์สูดสุดของ JSON ก็คือ สามารถ อ่านได้โดย eval คำสั่งเดียวหากใช้ javascript เช่น

// สมมุติว่า json data เป็นไปตามตัวอย่างที่ 2 var personList = eval('(' + json_data + ')'); // เราก็เอา personList มาเล่นได้เลย alert(personList.firstname);

ตัวอย่างที่ 3

อาจจะมีข่าวลือที่เสียหายเกี่ยวกับ JSON ว่านำไปใช้กับภาษาอื่นที่ไม่ใช่ Javascript ไม่ได้ ซึ่งมันไม่ค่อยจะจริงนัก เพราะว่ามี library สำหรับภาษาต่างๆ ที่ใช้กับ JSON มากมาย หรือต่อให้ไม่มี library พวกนั้นเราก็คงเขียนเองได้อยู่ดี 😛

สรุปว่าถ้าใช้ Ajax แล้ว JSON ก็อาจจะเป็นตัวเลือกในการส่งข้อมูลระหว่าง web browser และ web server ที่ดีตัวนึง ทั้งขาไปและขากลับ ที่สำคัญคือมันง่าย นอกจากนั้น JSON อาจจะเอาไปใช้ในงานๆ อื่นๆ ที่ไม่ได้ใช้ Ajax หรือ Javascript เลยก็ได้


  1. อ่านเรื่อง Ajax ต่อ
  2. อ่านเพิ่มเติม JSON

ขอบคุณคุณ bact ที่แนะนำเรื่อง Ajax และสาระน่าสนใจมาตลอด ( โดยผ่าน blog )

Advance javascript link(Quick guide to somewhat advanced JavaScript)

Leave a comment

Quick guide to somewhat advanced JavaScript http://www.sergiopereira.com/articles/advjs.html

Advance javascript link(Quick guide to somewhat advanced JavaScript)

Leave a comment

Quick guide to somewhat advanced JavaScript

http://www.sergiopereira.com/articles/advjs.html

Advance javascript link(Quick guide to somewhat advanced JavaScript)

Leave a comment

Quick guide to somewhat advanced JavaScript

http://www.sergiopereira.com/articles/advjs.html