jQuery Clone() Method and Browser Crash.

3 Dec

For the application I am working on ,I am playing a lot of plain Javascript and jQuery Library whenever I find some time.Today I stumbled(after cool 4 hrs of trial and error ) upon the interesting behavior of jquery library which I was able to reproduce via a simple test case where in I was seeing that code was crashing my browser probably to missing HTML Tag and this behavior was since in Firefox 7.01, IE 9.0(hangs) ,Safari 5.1(hangs).Honestly I feel  below code goes into infinite loop and there is no checking happening in either on browser’s side or jquery side for completeness of tags.I feel that some thing is missing on the jquery side as it keeps appending the stuff to the body(I can see this clearly in Firefox).Unclosed UL tags are rendered perfectly by browsers as unordered lists though I would have expected that browsers should not have ignored the unclosed UL tags completely.Not sure if UL is one of the tags which as per HTML5 does not require a  end tag.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Simple Test Case</title>
</head>

<body>
<ul>
<li>Test1</li>
<li>Test2</li>
<li>Test3</li>
<li>Test4</li>
<li>Test5</li>
<li>Test6</li>

<script type="text/javascript"  src="js/jquery-1.6.4.js"></script>
<script>
jQuery('ul').clone().appendTo('body');
</script>
</body>
</html>

I feel either jquery is getting confused for not finding the end tag or something is wrong with clone method of jquery.Whatever it is, I feel it should not crash the browser nor it should consume the amount of memory the way it is consuming now in the above code.It definitely harms the user’s session terribly.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: