'subs' => [ 'subroutine' ],
# optional
- 'method' => 'GET', #defaults to GET, could specify POST
- 'key' => 'unique', #unique key
+ 'method' => 'GET', # defaults to GET, could specify POST
+ 'key' => 'unique', # unique key
+ 'skip_empty' => '1', # When the given key value is null or = 0,
+ # skip making a useless http request
);
</%doc>
+<%shared>
+my %initialized = ();#won't work if component is "preloaded"... so don't do that
+</%shared>
<& /elements/rs_init_object.html &>
<& /elements/init_overlib.html &>
<SCRIPT TYPE="text/javascript">
% foreach my $func ( @{$opt{'subs'}} ) {
%
-% my $furl = $url;
-% $furl =~ s/\"/\\\\\"/; #javascript escape
-%#"
-%
-
+% next if $initialized{$key.$func}++;
+%
+% my $furl = $url;
+% $furl =~ s/\"/\\\\\"/; #javascript escape (fix gvim syntax: ")
function <%$key%><%$func%>() {
// count args; build URL
args = a;
len = args.length - 1;
}
+% if ( $opt{skip_empty} ) {
+ if ( args[0] == 0 || !args[0] ) {
+ return;
+ }
+% }
for (var i = 0; i < len; i++)
- content = content + "&arg=" + escape(args[i]);
+ content = content + "&arg=" + encodeURIComponent(args[i]);
content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs
if ( '<%$method%>' == 'GET' ) {