From: Jesse V. <je...@6t...> - 2003-06-10 15:35:20
|
Interesting idea, but I'm trying to keep the <script> tags in the browser to a minumum. I finished off the code the way I suggested this morning and it seems to work well, so I'll probably just stick with it that way. This way also allows me to just include "myfile.js" in my page and get everything I need. Jesse Raymond Irving wrote: >Well how about generating only browser specific merge >modules? > >dynapi.js >merge.ie.js >merge.dom.js >merge.opera.js >merge.ns4.js > >in the browser we could then do the following: > ><script src="../src/dynapi.js"></script> ><script> >if(dynapi.ua.ie) { > dynapi.setPath('../src/','merge.ie.js'); >}else if(dynapi.ua.opera) { > dynapi.setPath('../src/','merge.opera.js'); >}else if(dynapi.ua.ns4) { > dynapi.setPath('../src/','merge.ns4.js'); >}else if(dynapi.ua.supported) { > dynapi.setPath('../src/','merge.dom.js'); >}else{ > alert('Browser not supported'); >} ></script> > >The dynapi.js file would be compressed and stored as >dynapi.js. The other browser specific (and >non-specific) libraries could then be merged into a >single file. Only two files will be needed (dynapi.js >and merge.{whatever}.js) > >The setPath() function will support a second argument >called pkgfile (Package file). This will be used to >allow users to load in an alternative package.js file > >-- >Raymond Irving > > >--- Jesse Vitrone <je...@6t...> wrote: > >--------------------------------- > Thanks for the suggestions Kevin and Raymond, > > It looks like I can make my xml something like >this: > > <input-group> > ><input-filename="D:/development/6thgear/dynapi/src/api/mouse_ie.js"compare-value="dynapi.ua.ie" >/> > ><input-filename="D:/development/6thgear/dynapi/src/api/mouse_dom.js"/> > </input-group> > >and have my code generate the js: > > if (dynapi.ua.ie) { > // mouse_ie.js compressed code goes here > } > else { > // mouse_dom.js compressed code goes here > } > >I'll take the first of the group, and make the if. >Everything up to the last will be an else if >And the last, makes the else. > >All input-files inside an input-group need a >compare-value, except forthe last one. > >This looks like it should work. When I hand code my >compressed file tolook like the above, it works. It's >more code then would normally beneeded, since both >files are going to get included, but I can't thinkof >any other way around this problem. Plus, only the one >needed willhave to get parsed, so it shouldn't be too >bad. > >What do you think? Do you see any problems that I >might run intotrying to do it this way/ > >Also, since I have to redo the way the xml is parsed, >I'm going to usethe built in xml parsing that java has >and lose that dom4j.jardependency. Not as pretty, but >it gets the job done. > >Thanks for the help. > >Jesse > > >Kevin wrote: > >Sorry, didn't send to the list!----- Original Message >----- From: "Kevin" <ke...@ke...>To: >"Jesse Vitrone" <je...@6t...>Sent: >Tuesday, June 10, 2003 4:22 AMSubject: Re: >[Dynapi-Dev] compressing files > >I mean the packages.js file can help with the >dependency logic for your xml config file.Though I >don't know how to get around the (dom/opera/ns4/ie >layer)*(mouse) file split.The other inline compressor >method would work here - though server load impact >andno cache of the transient stream :( what! I wish I >could explain better ).As for this method once a >developer has a custom pre-processed and compressed >fileset published on the server there is no need for >the library. Difficult to choose. ThoughI like one >bundle per (virtual) server with little >load.-Kevin----- Original Message ----- From: Jesse >VitroneTo: KevinCc: Dynapi-DevSent: Sunday, June 08, >2003 7:19 PMSubject: Re: [Dynapi-Dev] compressing >filesKevin, I'm not sure what you mean about remove >the existing library system from the api. With the > > >xml > >config that I you can customize, you just pick and >choose what JS files you want it to compress > >and > >merge. So, I have the basic DynAPI ones, plus the >others that I use, plus my own. It lookssomething >like this:<jscompressor> <compressed-file >name="D:/development/6thgear/js/6thgear_compressed.js"> > <input-file >name="D:/development/6thgear/dynapi/src/dynapi.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/event.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/dyndocument.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/dynlayer_base.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/dynlayer_dom.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/mouse_dom.js"/> > <input-file >name="D:/development/6thgear/dynapi/src/api/ext/dynlayer.inline.js"/> > <input-file >name="D:/development/6thgear/js/6thgear.js"/> ><input-file >name="D:/development/6thgear/js/gearWindow.js"/> > <input-file >name="D:/development/6thgear/js/templates.js"/> ></compressed-file> <compressed-file >name="D:/development/6thgear/js/6thgear_edit_compressed.js"> > <input-file >name="D:/development/6thgear/dynapi/src/api/ext/dragevent.js"/> > <input-file >name="D:/development/6thgear/js/6thgear_edit.js"/> > <input-file >name="D:/development/6thgear/js/gearWindow_edit.js"/> > <input-file >name="D:/development/6thgear/js/templates_edit.js"/> > </compressed-file></jscompressor>This generates 2 >files, 6thgear_compress.js and >6thgear_edit_compressed. Then, my files only needto >include these, and no other DynAPI files.Is this what >you mean by removing the library system? Since I >don't have to include the > >library.js > >or use it in my code?JesseKevin wrote:Hi Jesse,I think >two compression methods can live well together.Yours >will serve a static compressed bundle with >littleserver load. It would be nice of this method >couldremove the existing library system from the api. >Thenthe compressor would reuse the removed code logic >(towork out dependencies) as a front end so the >developercan decide what compressed bundle is needed >to servehosted application types. Is this is a >standaloneapplication requiring an interpreter not an >applet.-Kevin."Raymond Irving" <xw...@ya...> >wrote:Hi Jesse,As Leif said, SourceForge only allow >developers touses SSH inorder to write to CVS.How >large is the Java version of the compressor?Some time >ago I made mention of having two versions ofthe dynapi >for download. A developer version and aproduction >version. IMO the developer version wouldinclude all >the external (non-API related) utilities,etc, while >the production version would only includethe src, docs >and examples. Should we make theexternal >tools/utilities, etc be part of thedeveloper's >download or should they be separate(something like a >Dynapi Developement Kit - DDK)?PS. All dynapi external >utilities, etc should beplaced in the bin/ folder. In >some cases it might begood to arrange them in >folders--Raymond Irving--- Jesse Vitrone ><je...@6t...> >wrote:--------------------------------- Raymond, >Leif, Greg, glad to see you both like the idea. >I'llsign up withsourceforge and use the patch system. > I grabbed the code from CVS when I first >startedmaking thechanges, but I tried to do an update >today,and there were lots onconflitcts that CVS didn't >seemto merge very well. So I grabbed aclean copy of >thecode again, and I'll go through and make >thechangesagain. Didn't take too long the first time. > I have WinCVS, but I've been using Tortoise >CVS.What do I needPutty for? I found a bug today in >my Java compression tool,and I'd like toget that fixed >before I sent it out. Ialso wanted to add a feature >inthe XML where you canspecify a comment that will be >put at the top ofthemerged file, since it rips out all >comments, and a lotof peoplewant something in the file >for licensing andstuff like that. Once Iget that >stuff in, I'll letyou know and send you a >copy.JesseRaymond Irving wrote:Very cool indeed Jesse, >very cool. Well done.IMO themerge feature is a major >plus for theDynAPIlibraries.There're two ways to check >in yourupdates. You could:1) Use the Patch system >availableon the DynAPISourceForge web site2) Setup >WinCVS andPutty on you computer can check inyou >changes viaCVS.Are your changes based on the lasted >version inCVS?--Raymond Irving--- Jesse >Vitrone<je...@6t...> wrote:Ooops, sorry, >hit send too soon :( Here's thewholeemailHello all, > I've never contributed to anopen source >projectbefore, so I'm not sure of theproper ettiquite. > Please correct me ifI do somethingstupid :) I've >been email with Raymond Irving aboutsomeidea's that I >had, and he encouraged me to post ithere and see >whatpeople think. I wrote a Javaversion of the >JavaScriptcompressor that comes withDynAPI. Along >with everything that the DynAPIonedoes, it reads in a >config file that says "compressthese files, thenmerge >them into this one file". Thisenables me to keep a >good amount ofJS files when I'mcoding, but then when I >"build" to apache, Icompressthem all into 1 file, so >the browser doesn't have tohit the servermultiple >times to get the files.Then, I took it a step farther, >and added what Ihad toin order to be able to compress >the DynAPI files I wasusing,and it worked! I was able >to get all my files,plus the DynAPI files Iwas using >and compress / mergethem all into 1 file. It sped >things up onmy serverdramatically. The changes were >all just addingsemi-colonswhere they were needed, >except for onecase: The mouse_ie.js, >dyndocument.jsandmouse_dom.js files all have a method >called "main"and that doesn't seem to workvery well >when they'reall combined into the same file. To fix >it,I renamedthem, which names like main_mouse_ie, etc, >and fixedallthe other references to them. Seems to >work fine,but I haven't testedextensively all the >examples andsuch.I'd like to check in my changes, as >well as sendinmy Java compressor, since Raymond said >he'd like topost it on the site. I'd also like to make >a Swingfront end for the java app to make it alittle >easierto use.What do you guys and gals think of this >idea?Should I check in the changes? What's the >rightprocess for checking inchanges? >Jesse-------------------------------------------------------This >SF.net email is sponsored by: Etnus, >makersofTotalView, The bestthread debugger on the >planet.Designed with threaddebugging featuresyou've >neverdreamed of, try TotalView 6 >freeatwww.etnus.com._______________________________________________Dynapi-Devmailing >lis...@li...http://www.mail-archive.com/dyn...@li.../__________________________________Doyou >Yahoo!?Yahoo! Calendar - Free online calendar withsync >toOutlook(TM).http://calendar.yahoo.com-------------------------------------------------------ThisSF.net >email is sponsored by: Etnus, makers ofTotalView, The >bestthread debugger on the planet.Designed with thread >debugging featuresyou've neverdreamed of, try >TotalView 6 free >atwww.etnus.com._________________...@li...http://www.mail-archive.com/dyn...@li.../__________________________________Do >you Yahoo!?Yahoo! Calendar - Free online calendar with >sync to >Outlook(TM).http://calendar.yahoo.com-------------------------------------------------------This >SF.net email is sponsored by: Etnus, makers of >TotalView, The bestthread debugger on the planet. >Designed with thread debugging featuresyou've never >dreamed of, try TotalView 6 free at >www.etnus.com._______________________________________________Dynapi-Dev >mailing >lis...@li...http://www.mail-archive.com/dyn...@li.../-------------------------------------------------------This >SF.net email is sponsored by: Etnus, makers of >TotalView, The bestthread debugger on the planet. >Designed with thread debugging featuresyou've never >dreamed of, try TotalView 6 free at >www.etnus.com._______________________________________________Dynapi-Dev >mailing >lis...@li...http://www.mail-archive.com/dyn...@li.../ > > >-------------------------------------------------------This >SF.net email is sponsored by: Etnus, makers of >TotalView, The bestthread debugger on the planet. >Designed with thread debugging featuresyou've never >dreamed of, try TotalView 6 free at >www.etnus.com._______________________________________________Dynapi-Dev >mailing >lis...@li...http://www.mail-archive.com/dyn...@li.../ > > > > >__________________________________ >Do you Yahoo!? >Yahoo! Calendar - Free online calendar with sync to Outlook(TM). >http://calendar.yahoo.com > > >------------------------------------------------------- >This SF.net email is sponsored by: Etnus, makers of TotalView, The best >thread debugger on the planet. Designed with thread debugging features >you've never dreamed of, try TotalView 6 free at www.etnus.com. >_______________________________________________ >Dynapi-Dev mailing list >Dyn...@li... >http://www.mail-archive.com/dyn...@li.../ > > |