การส่งค่าตัวแปรจาก Text file หรือ asp.net หรือ PHP ไปยัง Flash AS3
Code ใน Asp.net :
Response.Write(topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว)
Code ใน PHP :
echo 'topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว'
Code ใน Text File :
topic=ข่าวเด่นวันนี้&news=ข่าวครับข่าว
ใน Flash AS3 :
function URLLoaderVar() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);
//var request:URLRequest = new URLRequest("urlLoaderExample.txt");
//var request:URLRequest = new URLRequest("http://localhost/TestWeb/testload.php?id=1");
var request:URLRequest = new URLRequest("http://localhost/TestWeb/testload.aspx?id=1")
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}
function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, loadvarComplete);
}
function loadvarComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);
var vars:URLVariables = new URLVariables(loader.data);
//เอาตัวแปรไปใช้
trace("ตัวแปรที่ 1 = " + vars.topic);
trace("ตัวแปรที่ 2 = " + vars.news);
}
Friday, February 15, 2008
Monday, February 11, 2008
Contrast Ratio คืออะไร
คอนทราซท์ เรโช (Contrast Ratio) คืออะไร
คำว่า Contrast หมายถึง การเปรียบเทียบระหว่างสีขาวกับสีดำ คือเมื่อเราเอาสีขาวมาเทียวกับสีดำ แล้วสองสีนี้ตัดกันมากน้อยเพียงใด คือคอนทราซท์กันนั่นเอง ซึ่งเรามีการกำหนดสัดส่วนว่าทั้งสองสีนี้มีการตัดกันมากน้อยเพียงใด โดยเรียกว่า Ratio เช่น ค่า Contrast Ratio 1000:1 ก็หมายความว่ามีอัตราส่วนความห่างของสีดำและขาวห่างกัน 1000 ต่อ 1 ดังนั้น Contrast Ratio ในเครื่อง LCD ก็คืออัตราส่วนของความเข้มของสีระหว่างอ่อนสุด ไปจนถึงเข้มสุดนั่นเอง
โดยปัจจุบัน จะมีมาตรฐานอยู่หลายมาตรฐาน ซึ่งทั่วไปจะใช้มาตรฐานของ ANSI (American National Standards Institute) ซึ่งเป็นที่ยอมรับทั่วไป แต่ในปัจจุบัน มีบางบริษัท ใช้ Contrast Ratio ที่เรียกว่า Full-on ต่อ Full-off ซึ่งจะมีค่าสูงกว่า มาตรฐาน ANSI อยู่กว่าเท่าตัว เช่น Contrast Ratio มาตรฐาน ANSI 350 : 1 อาจมีค่าเท่ากับ 800 : 1 เมื่อวัดแบบ Full-on ต่อ Full-off ซึ่งเหมือนกับกำลังวัตต์ของเครื่องเสียง ที่มีทั้งกำลังวัตต์แบบ PMPO และ RMS
คำว่า Contrast หมายถึง การเปรียบเทียบระหว่างสีขาวกับสีดำ คือเมื่อเราเอาสีขาวมาเทียวกับสีดำ แล้วสองสีนี้ตัดกันมากน้อยเพียงใด คือคอนทราซท์กันนั่นเอง ซึ่งเรามีการกำหนดสัดส่วนว่าทั้งสองสีนี้มีการตัดกันมากน้อยเพียงใด โดยเรียกว่า Ratio เช่น ค่า Contrast Ratio 1000:1 ก็หมายความว่ามีอัตราส่วนความห่างของสีดำและขาวห่างกัน 1000 ต่อ 1 ดังนั้น Contrast Ratio ในเครื่อง LCD ก็คืออัตราส่วนของความเข้มของสีระหว่างอ่อนสุด ไปจนถึงเข้มสุดนั่นเอง
โดยปัจจุบัน จะมีมาตรฐานอยู่หลายมาตรฐาน ซึ่งทั่วไปจะใช้มาตรฐานของ ANSI (American National Standards Institute) ซึ่งเป็นที่ยอมรับทั่วไป แต่ในปัจจุบัน มีบางบริษัท ใช้ Contrast Ratio ที่เรียกว่า Full-on ต่อ Full-off ซึ่งจะมีค่าสูงกว่า มาตรฐาน ANSI อยู่กว่าเท่าตัว เช่น Contrast Ratio มาตรฐาน ANSI 350 : 1 อาจมีค่าเท่ากับ 800 : 1 เมื่อวัดแบบ Full-on ต่อ Full-off ซึ่งเหมือนกับกำลังวัตต์ของเครื่องเสียง ที่มีทั้งกำลังวัตต์แบบ PMPO และ RMS
Friday, February 1, 2008
ผู้บริหารแบบ Newtonian
ผู้บริหารแบบ Newtonian
ผู้บริหารแบบนี้เป็นผู้บริหารที่ไม่ดี หัวเก่า หัวโบราณ ยุคเซอร์ ไอแซค นิวตัน โดยมีบุคลิกลักษณะดังนี้
- คิดอะไรเป็นมาตรฐาน ไม่เข้าใจเรื่องความหลากหลาย ความแตกต่าง ข้อยกเว้น
- คิดแบบเห็นองค์กรเป็นแบบรถยนต์ คือ ประกอบไปด้วยชิ้นส่วนต่างๆ ไม่คิดแบบองค์รวม
- สนใจในเรื่องทุนทางการเงิน โดยไม่สนใจทุนทางปัญญา ทุนทางสังคม และทุนทางการร่วมมือ
- ใช้อำนาจมากจนเคยตัว มักบอกให้คนอื่นมีเหตุผล แต่ต้องตรงกับความคิดของตนเอง ถ้าใครคิดไม่ตรงกับตนเอง ก็จะบอกว่าคนคนนั้นไม่มีเหตุผล ซึ่งจะทำให้คนรองข้าง โดยเฉพาะลูกน้อง "ไม่กล้าคิด ไม่กล้าพูด ไม่กล้าทำ"
- ชอบการประเมิน และหา "จุดบกพร่อง" ของผู้อื่นเพื่อสั่งสอนโดยทำให้อาย ข่ม และจดจำ
- ติดนิสัยชอบขั้นตอน จึงทำให้เป็นคนพูดยาก ดื้อ อย่างไม่รู้ตัว
- คิดว่าทุกๆ อย่างต้อง "วัดผล" เป็นตัวเลขได้ โดยลืมไปว่าสามารถวัดแบบพฤติกรรม วัดแบบจัดอันดับ วัดแบบเกรด วัดแบบดูความคืบหน้าก็ได้
- ชอบพัฒนาเครื่องจักร เทคโนโลยี ขั้นตอนการทำงาน มากกว่าที่จะพัฒนาพฤติกรรมของคน
- เข้าใจผิดคิดว่าการพัฒนาคน คือการให้คนเข้าห้องเรียน และครูป้อนๆ ผู้เรียนจำ แล้วต้องถูกทดสอบความจำนั้น คนแบบนี้จะเห็นว่าเรื่องการศึกษาเป็นรูปแบบการผลิตชนิดหนึ่ง
- คนแบบนี้เรียนมาลึกในทางใดทางหนึ่ง แต่ไม่ได้เรียนเรื่องจิตวิทยา และการบริหารคน
- ชอบผลลัพธ์ที่รวดเร็ว ต้นทุนต่ำ ปริมาณมาก ดีกว่าคู่แข่ง กำไรเยอะๆ โดยไม่สนใจเรื่องความสูญเสียในเรื่องการทำลายสิ่งแวดล้อมหรือสุขภาพการใจของคนอื่น
- นิยมที่จะหาเครื่องจักรมาทำงานแทนคน
- มองลูกน้องว่า โง่ และขี้เกียจกว่าตน ยึดมั่นในระดับการศึกษา และสถานศึกษาที่ตนเองจบมา
ผู้บริหารแบบนี้เป็นผู้บริหารที่ไม่ดี หัวเก่า หัวโบราณ ยุคเซอร์ ไอแซค นิวตัน โดยมีบุคลิกลักษณะดังนี้
- คิดอะไรเป็นมาตรฐาน ไม่เข้าใจเรื่องความหลากหลาย ความแตกต่าง ข้อยกเว้น
- คิดแบบเห็นองค์กรเป็นแบบรถยนต์ คือ ประกอบไปด้วยชิ้นส่วนต่างๆ ไม่คิดแบบองค์รวม
- สนใจในเรื่องทุนทางการเงิน โดยไม่สนใจทุนทางปัญญา ทุนทางสังคม และทุนทางการร่วมมือ
- ใช้อำนาจมากจนเคยตัว มักบอกให้คนอื่นมีเหตุผล แต่ต้องตรงกับความคิดของตนเอง ถ้าใครคิดไม่ตรงกับตนเอง ก็จะบอกว่าคนคนนั้นไม่มีเหตุผล ซึ่งจะทำให้คนรองข้าง โดยเฉพาะลูกน้อง "ไม่กล้าคิด ไม่กล้าพูด ไม่กล้าทำ"
- ชอบการประเมิน และหา "จุดบกพร่อง" ของผู้อื่นเพื่อสั่งสอนโดยทำให้อาย ข่ม และจดจำ
- ติดนิสัยชอบขั้นตอน จึงทำให้เป็นคนพูดยาก ดื้อ อย่างไม่รู้ตัว
- คิดว่าทุกๆ อย่างต้อง "วัดผล" เป็นตัวเลขได้ โดยลืมไปว่าสามารถวัดแบบพฤติกรรม วัดแบบจัดอันดับ วัดแบบเกรด วัดแบบดูความคืบหน้าก็ได้
- ชอบพัฒนาเครื่องจักร เทคโนโลยี ขั้นตอนการทำงาน มากกว่าที่จะพัฒนาพฤติกรรมของคน
- เข้าใจผิดคิดว่าการพัฒนาคน คือการให้คนเข้าห้องเรียน และครูป้อนๆ ผู้เรียนจำ แล้วต้องถูกทดสอบความจำนั้น คนแบบนี้จะเห็นว่าเรื่องการศึกษาเป็นรูปแบบการผลิตชนิดหนึ่ง
- คนแบบนี้เรียนมาลึกในทางใดทางหนึ่ง แต่ไม่ได้เรียนเรื่องจิตวิทยา และการบริหารคน
- ชอบผลลัพธ์ที่รวดเร็ว ต้นทุนต่ำ ปริมาณมาก ดีกว่าคู่แข่ง กำไรเยอะๆ โดยไม่สนใจเรื่องความสูญเสียในเรื่องการทำลายสิ่งแวดล้อมหรือสุขภาพการใจของคนอื่น
- นิยมที่จะหาเครื่องจักรมาทำงานแทนคน
- มองลูกน้องว่า โง่ และขี้เกียจกว่าตน ยึดมั่นในระดับการศึกษา และสถานศึกษาที่ตนเองจบมา
Thursday, January 17, 2008
การทำ Index ของ Database
การทำ Index มีประโยชน์ในการค้นหาข้อมูล Query ได้รวดเร็ว โดยการค้นหาจะเป็นการกระโดดไปยังตำแหน่งที่ต้องการได้เลย ทำให้ไม่จำเป็นที่จะต้องค้นหาหมดทุก Row ทำให้ Query ได้เร็วกว่าเดิมมาก
1. ถ้าจะสร้างตาราง โดยจะใช้ field ที่เราใช้เป็นเงื่อนไขในการ query บ่อยๆ ก็สามารถสร้างตารางได้เลย เช่น
CREATE TABLE MyTransactionLogs
(
myKey INT AUTO_INCREMENT NOT NULL
myIndex TIMESTAMP NOT NULL
data1 VARCHAR(100)
data2 VARCHAR(100)
data3 VARCHAR(100)
etc VARCHAR(255)
PRIMARY KEY(myKey)
INDEX (myIndex)
)
;
2. ถ้าต้องการปรับปรุงตาราง ที่สร้างไปแล้ว เพื่อจัด index ให้ข้อมูลในฟิล์ด myIndex ถ้า myIndex ไม่ได้สั่งให้เป็น index ตั้งแต่ตอนสร้างตาราง ก็สามารถใช้คำสั่ง ข้างล่างนี้ จะทำให้ Query เร็วขึ้นมาก
ALTER TABLE MyTransactionLogs ADD INDEX(myIndex);
การจัดการ index ของตารางที่มมีฐานข้อมูลอยู่แล้ว จะเป็นการนำข้อมูลทั้งหมดของฟิล์ดที่เราต้องการจัด index มาจัดเรียง ทำให้เราต้องเสียพื้นที่(disk space) ในการจัดเก็บข้อมูลเพิ่มขึ้น ดังนั้นจึงไม่ควรจัด index ให้กับทุกฟิล์ดในตาราง ซึ่ง Field ที่ควรจัดเก็บควรมีคุณสมบัติดังต่อไปนี้
โดยขณะที่กำลังจัด index อยู่ ตารางจะถูก locked ไว้ เพื่อไม่ให้ใครมา insert/update/delete ได้ ถ้าตารางข้อมูลกำลังรันอยู่ที่ production และต้องมีการใช้งานอยู่ตลอดเวลา คุณอาจจะเลี่ยงไปทำตอนที่มี traffic การใช้งานน้อย เช่น ช่วงตี 3 - ตี 4 ซึ่งเป็นช่วงนี้ traffic น้อยที่สุด
1. ถ้าจะสร้างตาราง โดยจะใช้ field ที่เราใช้เป็นเงื่อนไขในการ query บ่อยๆ ก็สามารถสร้างตารางได้เลย เช่น
CREATE TABLE MyTransactionLogs
(
myKey INT AUTO_INCREMENT NOT NULL
myIndex TIMESTAMP NOT NULL
data1 VARCHAR(100)
data2 VARCHAR(100)
data3 VARCHAR(100)
etc VARCHAR(255)
PRIMARY KEY(myKey)
INDEX (myIndex)
)
;
2. ถ้าต้องการปรับปรุงตาราง ที่สร้างไปแล้ว เพื่อจัด index ให้ข้อมูลในฟิล์ด myIndex ถ้า myIndex ไม่ได้สั่งให้เป็น index ตั้งแต่ตอนสร้างตาราง ก็สามารถใช้คำสั่ง ข้างล่างนี้ จะทำให้ Query เร็วขึ้นมาก
ALTER TABLE MyTransactionLogs ADD INDEX(myIndex);
การจัดการ index ของตารางที่มมีฐานข้อมูลอยู่แล้ว จะเป็นการนำข้อมูลทั้งหมดของฟิล์ดที่เราต้องการจัด index มาจัดเรียง ทำให้เราต้องเสียพื้นที่(disk space) ในการจัดเก็บข้อมูลเพิ่มขึ้น ดังนั้นจึงไม่ควรจัด index ให้กับทุกฟิล์ดในตาราง ซึ่ง Field ที่ควรจัดเก็บควรมีคุณสมบัติดังต่อไปนี้
- Field ที่ใช้เป็นเงื่อนไขในการค้นหาข้อมูล (เวลา query อยู่หลัง WHERE ก็คือ Field ที่ควรทำ Index)
- จัด index ให้กับฟิล์ดที่ใช้ในการจัดเรียง (GROUP BY, ORDER BY)
- จัด index ให้กับ Foreign Keys ที่เราเอาไว้ JOIN
โดยขณะที่กำลังจัด index อยู่ ตารางจะถูก locked ไว้ เพื่อไม่ให้ใครมา insert/update/delete ได้ ถ้าตารางข้อมูลกำลังรันอยู่ที่ production และต้องมีการใช้งานอยู่ตลอดเวลา คุณอาจจะเลี่ยงไปทำตอนที่มี traffic การใช้งานน้อย เช่น ช่วงตี 3 - ตี 4 ซึ่งเป็นช่วงนี้ traffic น้อยที่สุด
Thursday, January 10, 2008
MIME Types
MIME (Multipurpose Internet Mail Extensions) is an Internet standard for describes message content types.
ที่มา:
http://www.w3schools.com/media/media_mimeref.asp
ที่มา:
http://www.w3schools.com/media/media_mimeref.asp
Windows Media Player CLASSID
Windows Media Player CLASSID
Windows Media Player มีหลายเวอร์ชั่น แต่ละเวอร์ชั่นก็จะมี Class ID และ Parameter ที่แตกต่างกัน
ดังนั้นจึงทำให้ต้องเปลี่ยน CLASSID ตามเวอร์ชั่นของ Windows Media Player ที่ต้องการให้รองรับ
Windows Media Player 10
clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6 (เหมือน WMP7)
Windows Media Player 9
clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6 (เหมือน WMP7)
Windows Media Player 7
clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6
Windows Media Player 6.4
clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95
Windows Media Player 6 (Older Version)
clsid:05589FA1-C356-11CE-BF01-00AA0055595A
Monday, December 17, 2007
Flash popup โดยใช้ Javascript
การทำ Flash popup โดยใช้ Javascript
AS2:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
getURL("javascript:" + jscommand + " void(0);");
AS3:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
navigateToURL(url, "_self");
ที่มา
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14192&sliceId=2
AS2:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
getURL("javascript:" + jscommand + " void(0);");
AS3:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
navigateToURL(url, "_self");
ที่มา
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14192&sliceId=2
Friday, December 14, 2007
Flash อ่านภาษาไทย
การทำให้ Flash สามารถดึงข้อมูลจากไฟล์ภายนอกที่ Encode มาแล้วไม่ใช่ Unicode ให้อ่านภาษาไทยได้
ใส่ Code นี้ที่บรรทัดบนสุดของ Action Script สังเกตดีๆ นะครับตรงที่ตัวพิมพ์ใหญ่พิมพ์เล็กอย่าให้ผิดนะครับไม่งั้นจะใช้ไม่ได้
System.useCodepage = true;
ใส่ Code นี้ที่บรรทัดบนสุดของ Action Script สังเกตดีๆ นะครับตรงที่ตัวพิมพ์ใหญ่พิมพ์เล็กอย่าให้ผิดนะครับไม่งั้นจะใช้ไม่ได้
System.useCodepage = true;
Thursday, December 13, 2007
VB .NET Tip: Overriding vs Overloading vs Shadowing
คอนเซ็บ ของ OOP ระหว่าง Overriding , Overloading , Shadowing มีความแตกต่างกันดังนี้ :
Overriding
This method completely replace a base class method implementation. It uses the same signatures (Parameters and return values) but you add new statements from the original code or completely change the process. Here is a good example of Overriding in VB .NET:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
Public Overrides Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
'Take note: It accepts and return same values but it changes the process
Retun X + Y
End sub
End Class
Overloading
Think Overloading as expanding the versions of a method. You don't change the original method of the base class but you add new versions of it. To create new version of a method you must define new parameters or return new type of value. Here is an example of Overloading:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
'Version 2: accepts new parameter
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub
'Version 3: return new type
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as String
Retun "Answer is: " & (X * Y * Z)
End sub
End Class
Shadowing
This method has the characteristic of both Overloading and Overriding, You create a new version of a method (overloading) but you want the orignal version be hidden from the user of the derived class (overriding). To make it crystal clear, look at the following example:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
'Version 2: accepts new parameter
Public Shadows Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub
End Class
'Client code
Dim MyShadowFunc as New MyNewClassSample ()
MyShadowFunc.MyFunc(3, 4) ' Generates error since this is the original method implementation
MyShadowFunc.MyFunc(3, 4, 5) ' Correct method
Overriding
This method completely replace a base class method implementation. It uses the same signatures (Parameters and return values) but you add new statements from the original code or completely change the process. Here is a good example of Overriding in VB .NET:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
Public Overrides Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
'Take note: It accepts and return same values but it changes the process
Retun X + Y
End sub
End Class
Overloading
Think Overloading as expanding the versions of a method. You don't change the original method of the base class but you add new versions of it. To create new version of a method you must define new parameters or return new type of value. Here is an example of Overloading:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
'Version 2: accepts new parameter
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub
'Version 3: return new type
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as String
Retun "Answer is: " & (X * Y * Z)
End sub
End Class
Shadowing
This method has the characteristic of both Overloading and Overriding, You create a new version of a method (overloading) but you want the orignal version be hidden from the user of the derived class (overriding). To make it crystal clear, look at the following example:
'The Original Class
Public Class MyBaseClassSample
Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub
End Class
'The Derived Class
Public Class MyNewClassSample
Inherits MyBaseClassSample
'Version 2: accepts new parameter
Public Shadows Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub
End Class
'Client code
Dim MyShadowFunc as New MyNewClassSample ()
MyShadowFunc.MyFunc(3, 4) ' Generates error since this is the original method implementation
MyShadowFunc.MyFunc(3, 4, 5) ' Correct method
Tuesday, December 11, 2007
วิธีทำ Favorite Icon บน URL เว็บไซต์
ใส่ Code นี้ใน tag Head ของเว็บไซต์
< href="favicon.ico" type="image/x-icon" rel="shortcut icon">
แล้วนำ icon ของเราไปวางที่ตำแหน่งตาม URL ของเราเป็นอันเสร็จสมบูรณ์ แต่ช่วงแรก favorite icon ของเราอาจจะขึ้นช้าหน่อยก็ไม่ต้องตกใจนะ ต้องรอซักระยะหนึ่งก่อน
< href="favicon.ico" type="image/x-icon" rel="shortcut icon">
แล้วนำ icon ของเราไปวางที่ตำแหน่งตาม URL ของเราเป็นอันเสร็จสมบูรณ์ แต่ช่วงแรก favorite icon ของเราอาจจะขึ้นช้าหน่อยก็ไม่ต้องตกใจนะ ต้องรอซักระยะหนึ่งก่อน
Subscribe to:
Posts (Atom)