admin管理员组

文章数量:1023744

How to determine if a javascript was already loaded by other html file? I want to reduce the redundant loading of the javascript files to decrease the loading time of my webpages.

How to determine if a javascript was already loaded by other html file? I want to reduce the redundant loading of the javascript files to decrease the loading time of my webpages.

Share Improve this question asked Jan 8, 2009 at 12:27 SashankSashank 1
  • This question seems a bit wooly can you clarify what you are doing? – AnthonyWJones Commented Jan 8, 2009 at 13:39
Add a ment  | 

3 Answers 3

Reset to default 5

If your web server is providing correct caching headers this shouldn't be necessary, the browser will cache the javascript file across multiple requests.

You might want to check out the YDN page Best Practices for Speeding Up Your Web Site

If you want to prevent the files from being downloaded twice then this will be automatic provided they are set to be cacheable (most webservers should set these headers sensibly by default).

If you want to make sure that the include tag happens only once when including files in a dynamic language then you will need some sort of manager. ASP.NET provides a scriptmanager class that does this (among other things). I cannot speak for other languages and frameworks

As Rory says the second request will probably be cached, and noting that this is a bit of a design failure if it can happen, you can understand that the cached file is still going to execute with negative effect.

This is horrible, but you could wrap your JS script like this:

if (!document.foo)
{
  //your script here

  document.foo = true;
}

How to determine if a javascript was already loaded by other html file? I want to reduce the redundant loading of the javascript files to decrease the loading time of my webpages.

How to determine if a javascript was already loaded by other html file? I want to reduce the redundant loading of the javascript files to decrease the loading time of my webpages.

Share Improve this question asked Jan 8, 2009 at 12:27 SashankSashank 1
  • This question seems a bit wooly can you clarify what you are doing? – AnthonyWJones Commented Jan 8, 2009 at 13:39
Add a ment  | 

3 Answers 3

Reset to default 5

If your web server is providing correct caching headers this shouldn't be necessary, the browser will cache the javascript file across multiple requests.

You might want to check out the YDN page Best Practices for Speeding Up Your Web Site

If you want to prevent the files from being downloaded twice then this will be automatic provided they are set to be cacheable (most webservers should set these headers sensibly by default).

If you want to make sure that the include tag happens only once when including files in a dynamic language then you will need some sort of manager. ASP.NET provides a scriptmanager class that does this (among other things). I cannot speak for other languages and frameworks

As Rory says the second request will probably be cached, and noting that this is a bit of a design failure if it can happen, you can understand that the cached file is still going to execute with negative effect.

This is horrible, but you could wrap your JS script like this:

if (!document.foo)
{
  //your script here

  document.foo = true;
}

本文标签: How to determine if a javascript was already loaded by other html fileStack Overflow