]> source.dussan.org Git - vaadin-framework.git/commitdiff
Document multiple load semantics in @StyleSheet and @JavaScript (#12200)
authorLeif Åstrand <leif@vaadin.com>
Fri, 19 Jul 2013 12:25:40 +0000 (15:25 +0300)
committerVaadin Code Review <review@vaadin.com>
Tue, 30 Jul 2013 12:59:23 +0000 (12:59 +0000)
Change-Id: Id52f196ad6d14e8077482b19a8d0479aedc64db3

server/src/com/vaadin/annotations/JavaScript.java
server/src/com/vaadin/annotations/StyleSheet.java

index f2085556c75ed693cceefb65ad9935499f9ef982..bdba70c0958500a6c5475f706279f5cfec75570d 100644 (file)
@@ -29,9 +29,21 @@ import com.vaadin.server.ClientConnector;
  * method for the corresponding client-side connector is invoked.
  * <p>
  * Absolute URLs including protocol and host are used as is on the client-side.
- * Relative urls are mapped to APP/PUBLISHED/[url] which are by default served
+ * Relative URLs are mapped to APP/PUBLISHED/[url] which are by default served
  * from the classpath relative to the class where the annotation is defined.
  * <p>
+ * The file is only loaded if it has not already been loaded, determined as
+ * follows:
+ * <ul>
+ * <li>For absolute URLs, the URL is considered loaded if the same URL has
+ * previously been loaded using {@code @JavaScript} or if a script tag loaded
+ * from the same URL was present in the DOM when the Vaadin client-side was
+ * initialized.
+ * <li>For relative URLs, the URL is considered loaded if another file with the
+ * same name has already been loaded using {@code @JavaScript}, even if that
+ * file was loaded from a different folder.
+ * </ul>
+ * <p>
  * Example: {@code @JavaScript( "http://host.com/file1.js", "file2.js"})} on the
  * class com.example.MyConnector would load the file http://host.com/file1.js as
  * is and file2.js from /com/example/file2.js on the server's classpath using
index 2e15d9481c5ab3ecaa69c2f5dc22111537326c1d..6540633f8f6b50e489ccba2e90b9e02f9ef24205 100644 (file)
@@ -29,9 +29,21 @@ import com.vaadin.server.ClientConnector;
  * method for the corresponding client-side connector is invoked.
  * <p>
  * Absolute URLs including protocol and host are used as is on the client-side.
- * Relative urls are mapped to APP/PUBLISHED/[url] which are by default served
+ * Relative URLs are mapped to APP/PUBLISHED/[url] which are by default served
  * from the classpath relative to the class where the annotation is defined.
  * <p>
+ * The file is only loaded if it has not already been loaded, determined as
+ * follows:
+ * <ul>
+ * <li>For absolute URLs, the URL is considered loaded if the same URL has
+ * previously been loaded using {@code StyleSheet} or if a
+ * {@code <link rel="stylesheet">} tag using the same URL was present in the DOM
+ * when the Vaadin client-side was initialized.
+ * <li>For relative URLs, the URL is considered loaded if another file with the
+ * same name has already been loaded using {@code StyleSheet}, even if that file
+ * was loaded from a different folder.
+ * </ul>
+ * <p>
  * Special Vaadin urls are also supported. The most useful is vaadin:// which
  * maps to the location of the automatically published VAADIN folder. Using the
  * VAADIN folder and vaadin:// you can publish stylesheets which use images or