RequireJS is quite popular. We've considered looking into it at Zepheira for Exhibit 3.0, but it's a big and somewhat experimental change and not one we have slated for the immediate future. If you're interested in pursuing it and submitting a pull request, I'd be happy to look it over.
On 2012-07-03 12:11 , David Karger wrote: > Here's one other option, as demonstrated by the aloha editor, leveraging > their usage of requirejs: > > <script type="text/javascript" src="Aloha/lib/aloha.js" > data-aloha-plugins="common/format, > common/table, > common/list, > common/link, > common/highlighteditables, > common/block, > common/undo, > common/contenthandler, > common/paste, > common/commands, > common/abbr, > extra/browser, > extra/linkbrowser"></script> > > > On 5/11/2012 3:08 PM, Ryan Lee wrote: >> Hi all, >> >> We've traced this down to a problem with the current extension loading >> mechanism. In an attempt to keep things from shifting too much between >> Exhibit 2 and Exhibit 3, I tried to allow for the form: >> >> <script src="exhibit-api.js"> >> <script src="extensions/map-extension.js"> >> >> But, with the varied ways released browsers now handle the script tag, >> this introduces a potential network delay in loading everything in the >> right order; sometimes the map code gets loaded after Exhibit's started >> to initialize itself, which is too late. >> >> You probably weren't expecting design proposals to your question, but it >> seems an opportune time to share what I've been kicking around the past >> couple of days, each with its own strengths and weaknesses. >> >> * Use LABjs >> >> In this scenario, the only script src tag will be to load the LABjs >> library, then use its loading framework inline to bring everything >> related to Exhibit, including extensions, in in an orderly fashion. The >> major drawback here is that it forces users who don't necessarily care >> at all about code to pay attention to the actual scripting. For those >> who do pay attention, it makes things a bit easier to incorporate >> extra-Exhibit material into the loading process. >> >> A related scenario would be to mask LABjs entirely with an >> Exhibit-specific mechanism, but this only really adds a layer that might >> allow an easier departure from LABjs if needed in the future. >> >> * Use async / defer >> >> HTML 5 introduces attributes to the script tag that allow the page >> author to give hints to the browser about whether some scripts can load >> without dependency on one another and whether some need to be run in the >> order they appear in. But support is not universal across browsers. >> >> * Abuse link rel >> >> Instead of listing extensions (or other scripts) as actual script tags, >> just point to them with >> >> <link rel="exhibit-extension" href="..."> >> >> and let Exhibit pick out and load extensions itself during its loading >> process. Other than the fact that I've never seen anybody use <link> in >> this way, this might be the simplest and least obtrusive solution I >> could think of. It does tend to make it even harder for those who don't >> control the <head> of a document to get Exhibit in. >> >> * Cram in more parameters >> >> Instead of listing each extension separately, they could also be set as >> additional parameters to the core of Exhibit >> >> <script src="exhibit-api.js?extension=extensions/map-extension.js"> >> >> which (aside from taking some steps backwards into Exhibit's history) is >> not as dubious as the prior proposal but makes that one line difficult >> to read and assemble and additionally makes it difficult for the >> extensions themselves to extract any of their own parameters; it would >> probably require an ad hoc solution for adding extension-only parameters. >> >> >> >> If you have any other ideas or feedback on the above, I'd love to hear >> from you (or get a pull request from you on GitHub ;). >> >> As for the Tile view issue, it had to do with paging and localization; >> that's been fixed in trunk [1]. Perhaps we can make a new release >> candidate in the near future bundling some of these fixes together. >> >> 1. >> https://github.com/zepheira/exhibit3/commit/0814c0b3695bb96e79272c2b00de8b3c17d1f784 -- You received this message because you are subscribed to the Google Groups "SIMILE Widgets" group. To post to this group, send email to simile-widgets@googlegroups.com. To unsubscribe from this group, send email to simile-widgets+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/simile-widgets?hl=en.