MoOx / pjax

Easily enable fast Ajax navigation on any website (using pushState + xhr)
MIT License
1.43k stars 124 forks source link

[Proposal] Pjax as EventEmitter? #53

Open darylteo opened 8 years ago

darylteo commented 8 years ago

At the moment, events are emitted via document using native dispatchEvent.

This (I think) causes issues if multiple instances of pjax are used.

Better to have Pjax as a EventEmitter emit its own events. This does increase the size of the library (4-5kb?).

MoOx commented 8 years ago

Good idea.

BehindTheMath commented 6 years ago

I think this will make testing easier and cleaner, as it will be easier to remove event listeners and avoid issues of event listeners on document carrying over between tests.

thewatts commented 5 years ago

Oddly enough, I ran into this issue tonight.

I'm using multiple pjax instances to load in different URLs // selectors.

Once both are used, one stops working (events never fired, switches never fired, etc).

Sending in custom options via loadUrl isn't working either.

Is there a workaround for this?

BehindTheMath commented 5 years ago

Why do you need multiple instances?

thewatts commented 5 years ago

@BehindTheMath I have one instance that loads in urls with specific selectors (main content), and another that's being used with a realtime filter (updates the filter's content, filter results)

BehindTheMath commented 5 years ago

It's a bit hard to picture without seeing it, but Pjax is only meant to be used with links and submitting forms, not for filtering data.

thewatts commented 5 years ago

Pjax is only meant to be used with links and submitting forms, not for filtering data.

I'm using pjax to click a link, and selectively fetch the content from the URL - nothing different than what's detailed in the README, etc.

I just happen to be using multiple pjax instances :)


The issue itself is really hard to reproduce - so I'll table it for now. Just wasn't sure if there was a recommended way of handling the scenario of needing multiple instances.

Thanks!