Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Discussions > OpenSocial Application Development > Avoiding absolute URLs in JS/CSS includes
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  7 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Michael Mahemoff  
View profile  
 More options Apr 22 2008, 8:22 am
From: "Michael Mahemoff" <mich...@mahemoff.com>
Date: Tue, 22 Apr 2008 13:22:57 +0100
Local: Tues, Apr 22 2008 8:22 am
Subject: Avoiding absolute URLs in JS/CSS includes

Hello,

I'm developing some gadgets that include some custom JS and CSS library
files. Being content-type html, they would usually require hard-coded URLs,
no relative paths as they're served from gmodules etc as opposed to my own
server. However, they're intended for distribution, so I want to avoid
hard-coding the entire URL in <script> and css <link> tags. What's the best
option here? I've considered the following options, but none are ideal:

- Generate the gadget spec from a server-side script or pre-compiler (which
inspects the current path). But I want to keep it simple and avoid those
kinds of dependencies.
- Use content-type=URL. But I want to use "html" and in any event, it's
going to be better supported that way.
- Avoid including CSS/JS files - keep it all in one file. This is the way
gadgets are typically envisioned to work. But there is common code and I
want to avoid duplication.
- Use "on-demand Javascript/CSS", ie dynamically include the JS/CSS by
programmatically generating a script tag (or remotely fetching and eval'ing
in the case of JS). This would be slower, but workable. It does raises
another question: is there an API call to discover the source URL for the
current gadget? (You could do it in a hacky way by parsing the iframe URL,
but it would be unreliable and container-dependent. I think there should be
such a "gadget reflection" type function available.
- Is there a better option?

It would be good if there was a way to <require> a script, which could then
optionally be cached by the container.


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arne Roomann-Kurrik Google employee  
View profile  
 More options Apr 22 2008, 1:26 pm
From: "Arne Roomann-Kurrik" <api.kur...@google.com>
Date: Tue, 22 Apr 2008 10:26:07 -0700
Local: Tues, Apr 22 2008 1:26 pm
Subject: Re: [OpenSocial] Avoiding absolute URLs in JS/CSS includes

Hi Michael,

   I've been using the "on-demand Javascript/CSS" option since I like to
host my gadgets out of SVN, so branching and tagging (which wind up changing
the location of the source files) causes problems for hard coded paths.
Sadly, there doesn't seem to be a better option than parsing the parent
string out of the iframe and using that to calculate a base path for the
gadget.

   These sorts of functions would make a good addition to the gadget spec.
Could you propose a modification in this group:
http://groups.google.com/group/opensocial-and-gadgets-spec/topics ?

Thanks,
~Arne

On Tue, Apr 22, 2008 at 5:22 AM, Michael Mahemoff <mich...@mahemoff.com>
wrote:

--
OpenSocial IRC - irc://irc.freenode.net/opensocial

    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Mahemoff  
View profile  
 More options Apr 22 2008, 1:51 pm
From: "Michael Mahemoff" <mich...@mahemoff.com>
Date: Tue, 22 Apr 2008 18:51:14 +0100
Local: Tues, Apr 22 2008 1:51 pm
Subject: Re: [OpenSocial] Re: Avoiding absolute URLs in JS/CSS includes

Thanks Arne. Glad to know that option at least works in practice, even if
it's not very performant or reliable. I'll propose something for the spec if
no-one has a better solution.

On Tue, Apr 22, 2008 at 6:26 PM, Arne Roomann-Kurrik <api.kur...@google.com>
wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Mahemoff  
View profile  
 More options Apr 22 2008, 2:13 pm
From: "Michael Mahemoff" <mich...@mahemoff.com>
Date: Tue, 22 Apr 2008 19:13:22 +0100
Local: Tues, Apr 22 2008 2:13 pm
Subject: Re: [OpenSocial] Re: Avoiding absolute URLs in JS/CSS includes

Also, could you please point me to the code you've used (or copy it here).
It would save me some time in the interim! I could imagine a useful library
function could be built from it.

On Tue, Apr 22, 2008 at 6:51 PM, Michael Mahemoff <mich...@mahemoff.com>
wrote:


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Arne Roomann-Kurrik Google employee  
View profile  
 More options Apr 22 2008, 3:45 pm
From: "Arne Roomann-Kurrik" <api.kur...@google.com>
Date: Tue, 22 Apr 2008 12:45:00 -0700
Subject: Re: [OpenSocial] Re: Avoiding absolute URLs in JS/CSS includes

Sure, check out
http://lamerankings.googlecode.com/svn/tags/1.0/lamerankings.xml - the code
in that gadget includes a bunch of files and calls a callback when they're
all loaded.

~Arne

On Tue, Apr 22, 2008 at 11:13 AM, Michael Mahemoff <mich...@mahemoff.com>
wrote:

--
OpenSocial IRC - irc://irc.freenode.net/opensocial

    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Mahemoff  
View profile  
 More options Apr 24 2008, 5:08 am
From: "Michael Mahemoff" <mich...@mahemoff.com>
Date: Thu, 24 Apr 2008 10:08:16 +0100
Local: Thurs, Apr 24 2008 5:08 am
Subject: Re: [OpenSocial] Re: Avoiding absolute URLs in JS/CSS includes
FYI I've now posted this as a proposal to the spec group.

On Tue, Apr 22, 2008 at 8:45 PM, Arne Roomann-Kurrik


    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Aakash Bapna  
View profile  
 More options Apr 24 2008, 8:27 am
From: Aakash Bapna <aak...@live.com>
Date: Thu, 24 Apr 2008 12:27:00 +0000
Subject: RE: [OpenSocial] Re: Avoiding absolute URLs in JS/CSS includes

I am using the below functions in current app to dynamically include JS, CSS when in canvas view.

function JSinclude(script_filename) {
            var html_doc = document.getElementsByTagName('head').item(0);
            var js = document.createElement('script');
            js.setAttribute('language', 'javascript');
            js.setAttribute('type', 'text/javascript');
            js.setAttribute('src', script_filename);
            html_doc.appendChild(js);
            return false;
        }

   function CSSinclude(script_filename)
   {
       var html_doc = document.getElementsByTagName('head').item(0);
            var css = document.createElement('LINK');
            css.setAttribute('REL', 'StyleSheet');
            css.setAttribute('type', 'text/css');
            css.setAttribute('media', 'screen');
           css.setAttribute('HREF', script_filename);
            html_doc.appendChild(css);
            return false;

       }    

This has notable performance gain in profile view, when lots of apps compete for bandwidth.

Thanks

~@@k@sh

http://aakash-bapna.blogspot.com

_________________________________________________________________
Make i'm yours.  Create a custom banner to support your cause.
http://im.live.com/Messenger/IM/Contribute/Default.aspx?source=TXT_TA...

    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google