use String.Format in javascript like c#

Leave a comment

// This is the function.
		String.prototype.format = function (args) {
			var str = this;
			return str.replace(String.prototype.format.regex, function(item) {
				var intVal = parseInt(item.substring(1, item.length - 1));
				var replace;
				if (intVal >= 0) {
					replace = args[intVal];
				} else if (intVal === -1) {
					replace = "{";
				} else if (intVal === -2) {
					replace = "}";
				} else {
					replace = "";
				}
				return replace;
			});
		};
		String.prototype.format.regex = new RegExp("{-?[0-9]+}", "g");
		
		// Sample usage.
		var str = "She {1} {0}{2} by the {0}{3}. {-1}^_^{-2}";
		str = str.format(["sea", "sells", "shells", "shore"]);
		alert(str);

JScript Editor Extensions

Leave a comment

http://visualstudiogallery.msdn.microsoft.com/872d27ee-38c7-4a97-98dc-0d8a431cc2ed?SRC=VSIDE

Using firebug in IE

Leave a comment

add this script in html page

<script type='text/javascript'
        src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>

then run
——————–

JavaScript : Ignore Case Array Sort

Leave a comment

When you sort an array in Javascript the array gets sorted into dictionary order. This means that ‘A’ is less than ‘a’ and gets sorted that way. If your array consists of both uppercase and lowercase entries then you probably want to sort alphabetically ignoring the case of the individual entries instead. We can change the way that the array sort method works by passing it a parameter identifying a function that contains the instructions on how to compare the entries.

To sort an array into order ignoring case add the following code (into the head section of your page is probably the most appropriate place):

function charOrdA(a, b){
a = a.toLowerCase(); b = b.toLowerCase();
if (a>b) return 1;
if (a <b) return -1;
return 0; }
function charOrdD(a, b)
a = a.toLowerCase(); b = b.toLowerCase();
if (a<b) return 1;
if (a >b) return -1;
return 0; }

We can now sort the array without the upper and lower case entries being sorted into different orders. The following example shows how:

charArray = new Array(‘c’,’A’,’z’,’f’,’D’);
charArray.sort( charOrdA );
document.write(‘Ascending : ‘ + charArray + ‘<br />’);
charArray.sort( charOrdD );
document.write(‘Descending : ‘ + charArray + ‘<br />’);

Short circuit logic operator

Leave a comment

ในภาษาโปรแกรมมิ่งที่มีคนใช้กันมากๆเกือบทุกตัว จะต้องมีโอเปอเรเตอร์ในการดำเนินการทางตรรกะแบบลัด ซึ่งมีชื่อว่า Short-Circuit Operator ซึ่งเราสามารถที่จะใช้เจ้าตัว Short-Circuit Operator ให้เป็นประโยชน์ได้
 
ทำได้อย่างไร?
กฏของ Short-Circuit Operator อยู่บนกฏพื้นฐานของ && และ || นั้นคือ
สำหรับ && แล้วถ้ามีตัวใดตัวหนึ่งในนิพจน์เป็นเท็จค่าของนิพจน์ && จะเป็นเท็จทันที
ตัวอย่างที่แสดงได้ดังต่อไปนี้
Code Sample
bool p = false;
bool q = true;
if (p && q) // ที่บรรทัดนี้โปรแกรมสามารถสรุปได้ทันที่ว่าเงื่อนไขนี้เป็นเท็จ
   ;        // โดยไม่ต้อง evaluate(คำนวณ)ค่าของ q แต่กลับกันหาก
            // p เป็น true q ต้องถูก evaluate ค่า
ตัวอย่างในสถานการณ์จริงเช่นเราต้องการ เรียกใช้งาน Method ที่อยู่ใน class
แต่ตัวแปรที่ใช้เก็บ instance ของคลาสนั้น อาจมีค่าเป็น null ได้
เพื่อหลีกเลี่ยง NullException เราจึงต้อง Check ค่าของตัวแปรว่ามีค่าเป็น Null หรือไม่ก่อนที่จะใช้งานมัน
เช่น ต้องการตรวจสอบความยาวของ string s
if (s != null && s.Length == 100) // กรณี s มีค่าเป็น null เราก็ไม่จำเป็นต้องตรวจสอบความยาวอีก
    ; //so something

bitwise หรือ logic operator นั้นจะทำงานได้เร็วกว่าโครงสร้างควบคุมแบบ if(    ) และแน่นอนช่วยเพิ่มประสิทธิภาพให้โปรแกรมของคุณ

ทำไมจึงควรใช้ Asychronous script callback และ Page Method แทน Update Panel

Leave a comment

การใช้งาน Asynchronize Feature ใน Ajax นั้นสามารถทำได้หลายวิธีด้วยกัน วิธีที่งานและเป็นที่นิยมมากคือการใช้ Update Panel ซึ่งเป็น Control พื้นฐานที่ติดมากับตัว Ajax Extension Module สำหรับ ASP.NET

UpdatePanel นั้นสามารถใข้งานได้งาน เพียงแค่นำส่วนของ Page ที่ต้องการให้เป็น Asynchronous Postback ใส่ไว้ใน Update Panel ก็สามารถทำงานได้แล้วแต่ ตัว UpdatePanel นั้นมีความสามารถในงาน call กลับไปยัง server ได้โดยที่ วงจรชีวิตในการทำงานของ server-side จะเกิดขึ้นปกติเหมือนกับการทำ postback ปกติ ตรงจุดนี้เองทำให้การใช้งาน Updatepanel นั้นจะได้ Performance ที่ต่ำกว่าการเรียกใช้ Webmethod หรือการใช้ Asynchronous layer เรียกไปยัง web service โดยตรง เนื่องจาก WebMethod นั้นจะทำงานโดย JSON ซึ่งเป็นลักษณะหน่ึงของ Web Service ข้อมูลที่ใช้ส่งระหว่างกันจะมีเพียงข้อมูลเป้าหมายที่ต้องการแสดงเท่านั้น แต่ในขณะที่ UpdatePanel นั้นจะทำการ render ทุกๆส่วนภายใน Panel ใหม่ทั้งหมด(ความจริง Render ใหม่ทั้ง Page แต่ว่า write กลับเฉพาะส่วนที่อยู่ภายใน UpdatePanel)

สรุป

การใช้ UpdatePanel นั้นดูเหมือนว่าจะเป็นการเพิ่มความสามารถให้กับหน้า Web Page ของเราแต่กลไกการทำงานของตัวมันเองจะมีลักษณะเดียวกับหน้าที่ไม่เป็น UpdatePanel และอาจจะอันตรายกว่าเนื่องจากการใช้ UpdatePenel เข้าไปช่วยนั้นมักจะทำให้เกิดการส่งข้อมูลบ่อยครั้งกว่าเนื่องจากผู้พัฒนามักเข้าใจผิดว่า server จะทำงานน้อยลง หากผู้พัฒนาต้องการทำเว็บเพจ ที่ต้องการการพิจารณาถึงเรือ่ง performance อยางระมัดระวังแล้ว Web service และ webmethod ดูจะเป็นทางเลือกที่ดีกว่า

 

ref: http://devstock.exteen.com/20090820/ajax-updatepanel-control

ref: http://devstock.exteen.com/20090820/ajax-updatepanel-control

javascript

Leave a comment

Observer Design Pattern Using JavaScript
http://www.codeproject.com/KB/scripting/Observer_Pattern_JS.aspx

Handy XP Style Menu
http://www.codeproject.com/KB/scripting/leftmenu.aspx

AJAX For Beginners
http://www.itechcollege.com/courses/AJAX/

http://www.codeproject.com/KB/scripting/jsbeginner.aspx

http://secure.codeproject.com/KB/scripting/cookies_intro.aspx

http://www.codeproject.com/KB/scripting/Javascript_PageCookie.aspx

Older Entries