Bot releases are hidden (Show)
Published by jiripudil almost 3 years ago
β¨ SnippetCache has been extracted into a separate component and the feature now has its own documentation page.
historyUiCache
option has been deprecated in favour of the new snippetCache
option.HistoryHandler.uiCache
flag has been deprecated in favour of the snippetCache
option. You can configure it via naja.initialize(defaultOptions)
.data-naja-history-no-cache
attribute has been deprecated in favour of data-naja-snippet-cache="off"
.snippetCache: 'session'
option.store
, fetch
and restore
, that allow you to tweak the caching behaviour or bypass it altogether.β¨ HistoryHandler exposes two new events, buildState
and restoreState
. These allow you to hook into the History API integration, and the SnippetCache is built on top of them.
β¨ ScriptLoader is now able to deduplicate loaded scripts by a unique identifier (suggested in #336). You can add a data-naja-script-id
attribute to the <script>
element inside a snippet. ScriptLoader will only load each identified script once, even if it repeatedly appears in multiple snippet responses.
data
into (#315).naja.initialize()
is no longer required to be called after the DOM is loaded, Naja makes sure of that internally where necessary.Accept: application/json
header (#314).Published by jiripudil over 4 years ago
Published by jiripudil over 4 years ago
GET
even more reliable.Published by jiripudil over 4 years ago
GET
(#63).Published by jiripudil over 4 years ago
Published by jiripudil over 4 years ago
SnippetHandler
events now have the fromCache
flag. The beforeUpdate
and afterUpdate
events now carry the information about whether the snippet is being updated from cache after user navigation (i.e. going back in history), or as a result of an AJAX request to the server.RedirectHandler
detects local redirects via UIHandler.allowedOrigins
. Until now, redirects leading to the same origin were done via another AJAX request (unless forced otherwise). This detection now takes into account the configured allowed origins, which means that redirects to any of the allowed origins is processed asynchronously by default.RedirectHandler
dispatches the redirect
event prior to redirection. This event allows you to override the soft vs. hard redirection settings, or even entirely prevent the redirection from happening.Published by naja-publisher almost 5 years ago
Published by jiripudil almost 5 years ago
Deprecate reading options from response payload (#44). After some thought, I consider passing options such as replaceHistory
or forceRedirect
to Naja via the response payload to be a cul-de-sac; server should not be able to affect the client-side processing of the request in such direct way. Therefore, Naja now emits a deprecation warning if it encounters such options in the payload, and will stop supporting them in 2.0.
RedirectHandler: pass original options to the new "redirection" request (#45). If the target redirection URL is local (i.e. relative, or absolute pointing to the same origin), RedirectHandler sends another AJAX request instead of redirecting. Since redirect sequences are usually perceived as a single request, Naja now mimics such flow by passing the options
of the original request to the redirected request, so that the intended behaviour of the request is preserved.
Published by jiripudil over 5 years ago
Refactor UIHandler and FormsHandler to only rebind updated snippets (#19). This is a simple internal refactoring which could lead to a better performance. As a side effect, the UIHandler
now exposes the bindUI()
method which you can use to manually bind the AJAX handler to DOM nodes that are created dynamically via a different mechanism than Nette snippets.
Accept defaultOptions in naja.initialize() (#24). The naja.initialize()
method now accepts defaultOptions
, adding a second way to configure them in addition to modyfing naja.defaultOptions
directly. The default options passed to the initialize method are also provided to the init
event listeners.
HistoryHandler: implement disabling UI cache (#17). This is an advanced feature that entirely disables the UI state cache; this helps prevent errors caused by big snippets that exceed the maximum storage quota. During navigation through the browser history, requests are actually sent again rather than artificially replayed from the history entry state. Be sure that you know what you're doing before using this feature.
Optimized SnippetHandler prepend/append (#20). Thanks @vitkutny!
Published by jiripudil over 6 years ago
naja.defaultOptions.history
and does not override it to true when data-naja-history
attribute is not set on the element. (Thanks @brosland for investigation!)Published by jiripudil over 6 years ago
window.Nette
.Published by jiripudil over 6 years ago
UIHandler.clickElement()
and UIHandler.submitForm()
helper methods (#12) that allow you to dispatch UI-bound events manually. This is especially useful if you need to submit a form programmatically (e.g. on change of select box), because form.submit()
does not trigger the form's submit
event.
interaction
event with originalEvent
set to undefined. This potentially breaks BC if you choose to use the newly introduced methods!popstate
behaviour in HistoryHandler being triggered on hashchange
.
initialUrl
, initialState
, and popped
. They were part of the internal API and were never documented, thus I don't consider their removal to be a BC break.Published by jiripudil over 6 years ago
data-naja-snippet-prepend
and data-naja-snippet-append
attributes detection in SnippetHandlerPublished by jiripudil over 6 years ago
data-naja-history-nocache
attribute detection in HistoryHandler (#8, thanks @dakur)Published by jiripudil almost 7 years ago
naja.defaultOptions
.options
object is now passed to the success
, error
, and complete
event handlers. Components and extensions can now use the options
object to pass metadata along with the request instead of having to keep track of them internally, which should prevent potential concurrency issues.forceRedirect
flag not only from response payload but also from options
.Published by jiripudil almost 7 years ago
Published by jiripudil almost 7 years ago
naja.makeRequest()
is resolved with the parsed response body, or rejected with the thrown error. This allows you to chain custom behavior after the response is processed by Naja when calling makeRequest()
manually.abort
event. They no longer trigger error handling, as the reasons for aborting the request usually do not indicate an erroneous state..ajax
) is now customizable via naja.uiHandler.selector
.naja.uiHandler.allowedOrigins
.history: false
to the request options, or data-naja-history="off"
to the .ajax
element.history: 'replace'
to the options or data-naja-history="replace"
to the element.