If you have:

if (is.**) {
        DynLayer.prototype._setX=function(){
                //code to execute
        };
} else {
        DynLayer.prototype._setX=function(){
                //code to execute
        };
};

you are making one decision before you get to the executing code.

If on the other hand you have:

DynLayer.prototype._setX=function(){
        if (is.ns) {
                //code to execute
        }
        else{
                //code to execute
        }
}

you are still making one decision before you get to the executing code. What
am I missing here? Did someone do testing that one is faster than the other
for drag events?

NanoFace =;^)


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Doug Melvin
Sent: December 3, 2001 10:29 AM
To: Laszlo Teglas; Dynapi-Dev@lists. sourceforge. net
Subject: Re: [Dynapi-Dev] prototype coding standard


Here's my understanding FWIW:
If the function will contain code that is common to multiple cases..

Such as DynLayer.prototype.specificCreate where there mare browser specific
cases but the last bit of code is common to all browsers.. then we branch
inside of the function..

But if the function will execute fully unique code for each browser then you
would branch the declaration itself..

Ie; to prevent the code from having to domake any more decision than
nessesary..

In an Event-Driven environment such as this (this _IS_ an event driven
enviroment believe it or not)
A single function can find itself being called a hundred times in a couple
of seconds (ie; the mouseover event functions for dragging)
In a case such as this, the fewer decisions(less code) is preferable.


----- Original Message -----
From: "Laszlo Teglas" <[EMAIL PROTECTED]>
To: "Dynapi-Dev@lists. sourceforge. net" <[EMAIL PROTECTED]>
Sent: Monday, December 03, 2001 10:18 AM
Subject: [Dynapi-Dev] prototype coding standard


> I was roaming through the core files.
>
> And noticed that in most cases we start a prototype declaration first and
> then branch off for the various browsers. However in some cases we are
first
> branching off and then declaring the prototype functions for each of the
> browsers.
>
> I can see why we would do this if we did not want a prototype for all
> browsers thus we don't need an else {} block like is the case for:
> if (is.def) {
> DynLayer.prototype.getOuterHTML()=function(){
> ....
> }
> }else if (is.ns4){
> DynLayer.prototype.getOuterHTML()=function(){
> ....
> }
> }
>
> But why would we do this for prototype functions where we are prototyping
> for all brouwsers with an else{} block, as is the case in:
>
> if (is.ns) {
> DynLayer.prototype._setX=function(){ this.css.left=this.x; };
> DynLayer.prototype._setY=function(){ this.css.top=this.y; };
> } else {
> DynLayer.prototype._setX=function(){ this.css.pixelLeft=this.x; };
> DynLayer.prototype._setY=function(){ this.css.pixelTop=this.y; };
> };
>
> Would it not be better style to write:
>
> DynLayer.prototype._setX=function(){
> if (is.ns) {this.css.left=this.x;}
> else{this.css.pixelLeft=this.x;}
> }
> DynLayer.prototype._setY=function(){
> if (is.ns) {this.css.top=this.y;}
> else{this.css.pixelTop=this.y;}
> }
>
> Actually you also save a few bytes for all you byte counters.
>
> Also for _setHTML, we currently have:
>
> if (is.ns4) {
> DynLayer.prototype._setHTML=function(html) {
> ...
> }
> } else if (is.ie) {
> DynLayer.prototype._setHTML=function(html) {
> ...
> }
> } else {
> DynLayer.prototype._setHTML=function(html) {
> ...
> }
> };
>
> Would it not be better to have:
>
> DynLayer.prototype._setHTML=function(html) {
> if (is.ns4) {
> ...
> }
> else if (is.ie) {
> ...
> }
> else {
> ...
> }
> }
>
> I think it is better style, and we save two lines of:
> "DynLayer.prototype._setHTML=function(html)" for all you byte counters.
>
> NanoFace =;^)
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Dynapi-Dev mailing list
> [EMAIL PROTECTED]
> http://www.mail-archive.com/dynapi-dev@lists.sourceforge.net/


_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/dynapi-dev@lists.sourceforge.net/


_______________________________________________
Dynapi-Dev mailing list
[EMAIL PROTECTED]
http://www.mail-archive.com/dynapi-dev@lists.sourceforge.net/

Reply via email to