Kyle Joseph Stiemann Il y a 7 années - Edité This didn't seem to fit in the blog but Inácio Nery (https://github.com/inacionery) also added a nice feature that allows developers to specify how SennaJS will treat resources that they added to the <head> section. As alluded to above, Liferay 7 unloads/removes CSS resources from the <head> section on navigation, but it does not remove <script>s. This is great default functionality because CSS resources can be unloaded but scripts cannot. However Inácio Nery added the ability to change this functionality by allowing developers to customize the data-senna-track attribute of their <head> resources (https://github.com/liferay/liferay-portal/commit/870041f3434c559ea135dc7635799210a004c194). If the developer does not specify a data-senna-track attribute, <script>s and CSS will default to the functionality mentioned above. However, if the developer wants to change this for certain resources, they need only add the data-senna-track attribute to override the default. For example, to ensure that CSS is not unloaded during SennaJS navigation, add data-senna-track="permanent" to your CSS element:<link href="example/example.css" data-senna-track="permanent" /><script>s are not unloaded/removed during navigation (meaning they default to data-senna-track="permanent"), but you can set them to be:<script src="example/example.js" data-senna-track="temporary" />A word of caution, this will not actually unload the objects created by the JS resource. Potentially, this could create duplicate objects and cause problems because SennaJS will not avoid loading a <script> multiple times as it does with data-senna-track="permanent" (the default for <script>s).See the SennaJS docs for more details: http://sennajs.com/docs#trackableresources Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Eduardo Lundgren Il y a 7 années Very nice encapsulation of SPA navigation into JSF portlets. Good job! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kyle Joseph Stiemann Eduardo Lundgren Il y a 7 années Thanks Eduardo! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kyle Joseph Stiemann Eduardo Lundgren Il y a 7 années Thanks Eduardo! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Bruno Basto Il y a 7 années Awesome! Good job, Kyle! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kyle Joseph Stiemann Bruno Basto Il y a 7 années Thanks Bruno, we could not have done it without your help! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kyle Joseph Stiemann Bruno Basto Il y a 7 années Thanks Bruno, we could not have done it without your help! Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
William Gosse Il y a 5 années I am seeing an decrease in page loading speed without SennJS so I tried adding the following to my liferay-portlet.xml instead of turning SennaJS of completely: <!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 7.0.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_7_0_0.dtd"> <liferay-portlet-app> <portlet> <portlet-name>packages</portlet-name> <icon>/icon.png</icon> <requires-namespaced-parameters>false</requires-namespaced-parameters> <ajaxable>false</ajaxable> <header-portlet-css>/resources/css/main.css</header-portlet-css> <single-page-application>false</single-page-application> </portlet> <portlet> But it caused the portlet not load and this exception in Liferay: Caused by: com.liferay.portal.kernel.xml.DocumentException: Error on line 12 of document : The content of element type "portlet" must match "(portlet-name,icon?,virtual-path?,struts-path?,parent-struts-path?,configuration-path?,configuration-action-class?,indexer-class*,open-search-class?,scheduler-entry*,portlet-url-class?,friendly-url-mapper-class?,friendly-url-mapping?,friendly-url-routes?,url-encoder-class?,portlet-data-handler-class?,staged-model-data-handler-class*,template-handler?,portlet-layout-listener-class?,poller-processor-class?,pop-message-listener-class?,social-activity-interpreter-class*,social-request-interpreter-class?,user-notification-definitions?,user-notification-handler-class*,webdav-storage-token?,webdav-storage-class?,xml-rpc-method-class?,application-type*,control-panel-entry-category?,control-panel-entry-weight?,control-panel-entry-class?,asset-renderer-factory*,atom-collection-adapter*,custom-attributes-display*,permission-propagator?,trash-handler*,workflow-handler*,preferences-company-wide?,preferences-unique-per-layout?,preferences-owned-by-group?,use-default-template?,show-portlet-access-denied?,show-portlet-inactive?,action-url-redirect?,restore-current-view?,maximize-edit?,maximize-help?,pop-up-print?,layout-cacheable?,instanceable?,remoteable?,scopeable?,single-page-application?,user-principal-strategy?,private-request-attributes?,private-session-attributes?,autopropagated-parameters?,requires-namespaced-parameters?,action-timeout?,render-timeout?,render-weight?,ajaxable?,header-portal-css*,header-portlet-css*,header-portal-javascript*,header-portlet-javascript*,footer-portal-css*,footer-portlet-css*,footer-portal-javascript*,footer-portlet-javascript*,css-class-wrapper?,facebook-integration?,add-default-resource?,system?,active?,include?)". Nested exception: The content of element type "portlet" must match "(portlet-name,icon?,virtual-path?,struts-path?,parent-struts-path?,configuration-path?,configuration-action-class?,indexer-class*,open-search-class?,scheduler-entry*,portlet-url-class?,friendly-url-mapper-class?,friendly-url-mapping?,friendly-url-routes?,url-encoder-class?,portlet-data-handler-class?,staged-model-data-handler-class*,template-handler?,portlet-layout-listener-class?,poller-processor-class?,pop-message-listener-class?,social-activity-interpreter-class*,social-request-interpreter-class?,user-notification-definitions?,user-notification-handler-class*,webdav-storage-token?,webdav-storage-class?,xml-rpc-method-class?,application-type*,control-panel-entry-category?,control-panel-entry-weight?,control-panel-entry-class?,asset-renderer-factory*,atom-collection-adapter*,custom-attributes-display*,permission-propagator?,trash-handler*,workflow-handler*,preferences-company-wide?,preferences-unique-per-layout?,preferences-owned-by-group?,use-default-template?,show-portlet-access-denied?,show-portlet-inactive?,action-url-redirect?,restore-current-view?,maximize-edit?,maximize-help?,pop-up-print?,layout-cacheable?,instanceable?,remoteable?,scopeable?,single-page-application?,user-principal-strategy?,private-request-attributes?,private-session-attributes?,autopropagated-parameters?,requires-namespaced-parameters?,action-timeout?,render-timeout?,render-weight?,ajaxable?,header-portal-css*,header-portlet-css*,header-portal-javascript*,header-portlet-javascript*,footer-portal-css*,footer-portlet-css*,footer-portal-javascript*,footer-portlet-javascript*,css-class-wrapper?,facebook-integration?,add-default-resource?,system?,active?,include?)". I really hope you guys are paying attention to this SennaJS issue. I notice that it was the cause of the column toggler issue I was having as well. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler Kyle Joseph Stiemann William Gosse Il y a 5 années - Edité Hi William, please don't double post. I've answered your question here: https://community.liferay.com/forums/-/message_boards/message/110647104 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler William Gosse Kyle Joseph Stiemann Il y a 5 années My apologies for the double post but please note the it is an indication of the level of frustration I'm having with this issue. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
Kyle Joseph Stiemann William Gosse Il y a 5 années - Edité Hi William, please don't double post. I've answered your question here: https://community.liferay.com/forums/-/message_boards/message/110647104 Veuillez vous identifier pour voter. Répondre en tant que ... Annuler William Gosse Kyle Joseph Stiemann Il y a 5 années My apologies for the double post but please note the it is an indication of the level of frustration I'm having with this issue. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler
William Gosse Kyle Joseph Stiemann Il y a 5 années My apologies for the double post but please note the it is an indication of the level of frustration I'm having with this issue. Veuillez vous identifier pour voter. Répondre en tant que ... Annuler