The main goal of yapt is to provide a solution to the endless grow of TiddliWiki archives. For that purpose I implemented an ajax solution that replaced the core mechanism. Mainly because of the need of synchronization during the load of content I added some callbacks and took the decision not to implement that functionality as a plugin since I wanted to load the plugins and the tiddler index asynchronously, using JSON for compactness and simplicity (and prototype):
* http://yapt.dsland.org/es/scripts/remote.js
* http://yapt.dsland.org/es/scripts/custom.js
* http://yapt.dsland.org/es/scripts/patch.js
Since the system was not more compatible with legacy TW, and I wanted to explore a more SEO approach, I replaced the store area with a list of links pointing to an alternate view that preloaded the content of the specified tiddler, so It could be directly indexed by bots:
* http://yapt.dsland.org/es/view/Home
Now, with the new release of tw2.2, I'm planning to abandon this project since the new Adaptor interface offers an standardized way to implement lazy load and I'm planning rewrite the RemoteStore I used in this site..
The other side effect of this release offers me the stimulus to switch to a new back-end based on JERD, a new approach using DWR to implement the RPC layer and a back-end written in our favorite language (of course, if you like TiddlyWiki, you like Javascript) using [[Rhino]].
I'm not sure if I will release the code of the yapt back-end despite of the async feature, partly because it would force me to review the code (due to some incommode/shaming security implications) and partly because being written in php, there are other better server-side TW implementations.. (like [[MTS]]).
[[Mail sent to the TiddlyWikiDev Group]]
<>
----
!! news:
# ''Version 2.2 of TW has been [[released|http://trac.tiddlywiki.org/wiki/ReleaseNoteTwoPointTwo]]...'' with some enhancements in download/import, server Adaptors, replace \n by , etc...
# Some interesting discussions related to the lazy content load implemented in yapt
* [[Ticket 209|http://trac.tiddlywiki.org/ticket/209]]
* [[Discussion on the Dev mail list on specific group dedicated on serverside implementations| http://groups.google.co.uk/group/TiddlyWikiDev/browse_thread/thread/45bf58ccfeeabc92/f7a415ecd092f503?hl=en&lnk=gst&q=ajax# ]]
*[[Meta data & lazy load | http://groups.google.com/group/TiddlyWikiDev/browse_thread/thread/ab28e78c6c9ca320/5ff7566919d63f6a?q=emd&rnum=4#5ff7566919d63f6a]]
* [[UdoBorkowski's Extensions for TiddlyWiki|http://tiddlywiki.abego-software.de/]]
----
Following the thread, I've worked at least on three implementations.
* A first attempt, using DWR...
* The //current// implementation on lazy content load:
>>Note: the meta data (RemoteStore.index) is loaded thought JSON
>>I had to take care on the async load of pluggins (that need to be done before rendering
>>Of course: I've tried ''several'' [[BackButtonFix]](es)
> The relevant code is splitted in separate files:
**[[Patches |/es/scripts/patch.js]]
**[[ Remote Store |/es/scripts/remote.js]]
----
|<>|<>|