Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Joconut - Smart PJAX jQuery plugin in 1kb (github.com/vdemedes)
34 points by vdemedes on June 3, 2012 | hide | past | favorite | 20 comments



I get the benefit of PJAX when you're replacing part of a page. If you're replacing the whole page, how does this beat a real browser load of the exact same data in the same number of hits?

(Is it simply that it saves you the effort of setting your caching headers for inline resources properly?)


Partially agree here with you.


Seems to break if you have a link without an href.

It also seems to blow away any previous listeners places on elements. Any plans to have callbacks for events so that listeners can be re-bound?

Aside from that, looks totally sweet. I'm going to use this in a bunch of places.


Awful mistake, sorry, completely forgot about that issue. Will be fixed ASAP. However, there is "new" event, which gets fired on every new page. You can listen to it using $.joconut.on, see Readme in GitHub repository at https://github.com/vdemedes/joconut.

Thanks, glad you like it!


Great idea. I'm having trouble getting it to work ( https://github.com/vdemedes/joconut/issues/5 ), but I'm looking forward to trying it out!

One thought came to mind for a potential leaky abstraction: unlike HTML and CSS that can be "undone" and are idempotent, JS has side effects that can't be undone, and isn't always idempotent. Are there JS patterns we need to embrace or avoid to ensure Joconut always "just works"?



Update pushed, issue fixed.


Missing some things:

- How is this different form the existing PJAX-plugin?

- Is there a demo page for this plugin?


Sorry, no demo page for now. It is different from PJAX in these ways:

1. 1kb minified and gzipped

2. Auto-loading of JS and CSS from new pages, if needed

3. No need to set up and configure


What exactly does it do? I'm not sure if I follow completely.


Loads pages via AJAX and updates the browser history using `pushState`. This is an alternative to the PJAX library: https://github.com/defunkt/jquery-pjax

Use either if you have an irrational aversion to page reloads.

Snark aside - jQuery Mobile uses a similar technique to cache entire pages in the DOM and for page transitions.


Or use if your site plays music :).


Beverly Hills Cop MIDI track? Yes.


It allows loading pages without refreshing browser window. User will not notice any loading indicator/progress, pages will instantly "replace" each other.


> User will not notice any loading indicator/progress, pages will instantly "replace" each other

Um, no. The pages won't "instantly" load - the browser still has to make a round trip to load the page content.

A loading or progress indicator should still be shown letting the user know that this round trip is taking place - especially important if you're on a slow US cell network. If a user is on a slow connection and no visual feedback is given they may end up mashing a link, making the load time worse - or, worse yet, assume the site is broken.


Agree, I will add "before" and "after" events to the Joconut, so that developer can listen to them and display progress indicator he likes.


Love to try this out, especially the loading scripts feature.

One question though: Is there any setup i need to do, or does it just fit right in with my existing pjax set-up?


Nope, you just have to include joconut.js in the web page. It will do the rest.


Could you explain what the benefits are over plain ol' vanilla PJAX? Thanks!


1. No need to set up, just script tag

2. 1kb minified and gzipped

3. Auto-load of additional JS and CSS from new pages, if needed




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: