Kyle Joseph Stiemann 7 Anos atrás - Editado 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 Por favor, autentique-se para votar. Responda como... Cancelar
Eduardo Lundgren 7 Anos atrás Very nice encapsulation of SPA navigation into JSF portlets. Good job! Por favor, autentique-se para votar. Responda como... Cancelar Kyle Joseph Stiemann Eduardo Lundgren 7 Anos atrás Thanks Eduardo! Por favor, autentique-se para votar. Responda como... Cancelar
Kyle Joseph Stiemann Eduardo Lundgren 7 Anos atrás Thanks Eduardo! Por favor, autentique-se para votar. Responda como... Cancelar
Bruno Basto 7 Anos atrás Awesome! Good job, Kyle! Por favor, autentique-se para votar. Responda como... Cancelar Kyle Joseph Stiemann Bruno Basto 7 Anos atrás Thanks Bruno, we could not have done it without your help! Por favor, autentique-se para votar. Responda como... Cancelar
Kyle Joseph Stiemann Bruno Basto 7 Anos atrás Thanks Bruno, we could not have done it without your help! Por favor, autentique-se para votar. Responda como... Cancelar
William Gosse 5 Anos atrás 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. Por favor, autentique-se para votar. Responda como... Cancelar Kyle Joseph Stiemann William Gosse 5 Anos atrás - Editado Hi William, please don't double post. I've answered your question here: https://community.liferay.com/forums/-/message_boards/message/110647104 Por favor, autentique-se para votar. Responda como... Cancelar William Gosse Kyle Joseph Stiemann 5 Anos atrás 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. Por favor, autentique-se para votar. Responda como... Cancelar
Kyle Joseph Stiemann William Gosse 5 Anos atrás - Editado Hi William, please don't double post. I've answered your question here: https://community.liferay.com/forums/-/message_boards/message/110647104 Por favor, autentique-se para votar. Responda como... Cancelar William Gosse Kyle Joseph Stiemann 5 Anos atrás 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. Por favor, autentique-se para votar. Responda como... Cancelar
William Gosse Kyle Joseph Stiemann 5 Anos atrás 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. Por favor, autentique-se para votar. Responda como... Cancelar