El Patron Posted August 5, 2014 Share Posted August 5, 2014 Curios about something I see in PrestaShop and CMS's in general. when we look at a non-CCC (just for sake of clarity) the called .js files in page source we can see in many shops multiple calls to same .js files, but from different file/remote locations. for example somejshere/somejshere.js /js/somejshere/somejshere.js while PrestaShop will remove duplicate .js calls when location is the same, it does not however remove duplicate .js file names. The question I have will browser use the 'last' called .js file functions? thanks in advance for your review and thoughts el (fred) Link to comment Share on other sites More sharing options...
El Patron Posted August 5, 2014 Author Share Posted August 5, 2014 I suspected as much, if we do not use html attribute 'async' for java script calls then the last one defined will be the actual one that runs. now for a bit of coding happy day Link to comment Share on other sites More sharing options...
vekia Posted August 5, 2014 Share Posted August 5, 2014 everything depends on script. for example, if you will run some scripts that load some external libraries (for example facebook libraries with app id definition) browser will load FIRST script, second will not be loaded (in fact it will be loaded, but it will not be executed due to the fact that facebook object was created before in first library). usually for standard scripts: both files will be executed in order related to position in the code (page body). for example, your page loads two script files /myscript/script1.js with code: function something(){ alert("1"); } /somedirectory/script1,js with code: function something(){ alert("2"); } if you will call someting(); you will see "2" message box, because second file overwrited something() function with own function contents. Link to comment Share on other sites More sharing options...
El Patron Posted August 5, 2014 Author Share Posted August 5, 2014 everything depends on script. for example, if you will run some scripts that load some external libraries (for example facebook libraries with app id definition) browser will load FIRST script, second will not be loaded (in fact it will be loaded, but it will not be executed due to the fact that facebook object was created before in first library). usually for standard scripts: both files will be executed in order related to position in the code (page body). for example, your page loads two script files /myscript/script1.js with code: function something(){ alert("1"); } /somedirectory/script1,js with code: function something(){ alert("2"); } if you will call someting(); you will see "2" message box, because second file overwrited something() function with own function contents. thank you, I felt this must be how it works without using something like namespace. I have code (experimental and in test) that deletes any duplicate .js and keep only the last one. When I write code I must make some assumption...that earlier duplicate file names will be replaced by subsequent calls. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now