I have a single .Rmd that is being rendered many times with different data being displayed each time in the r chunks. I want to reuse the same html dependency directory using the lib_dir pandoc option. This works fine, but the dependencies are recreated each time render is called causing a lot of extra waiting time. Is there a way to force render to not recreate the dependencies (plotly, bootstrap, htmlwidgets, etc.)?
Related
I have a project in which I need to save or display multiple forms after saving data when the page load it takes several time to display whole content, please help me to suggest the good package of compressing static files, I have already used django-compressor and django-assets packages but didn't get any success.Any ither things I can apply here ??
What do you mean with 'it takes several time to display content', do you need to refresh your page multiple times or just it takes a few seconds to load the page?
If the rendering of the page takes a long time to render, you could try to find out why. Django debug toolbar (https://github.com/jazzband/django-debug-toolbar) is a good tool to get some insights to find some improvements.
If it's not possible to improve the rendering and most of the requests are made to the same form/data then you can take a look at the Django cache framework (https://docs.djangoproject.com/en/2.2/topics/cache/)
you can save the url of the static file in your database and using the url from the database you can load the files from the static folder . Also if it okay with your project you can use pagination
In our attempt to transform our code from FTC to CAM we are facing some minor difficulties from the branding perspective. I’ll briefly elaborate about our scenario below:
In our current FTC implementation we are using both CSS and JS to render the desired UI. References for both the assets are present in the master page and hence get rendered with the HTML
Since it is recommended not to modify the master page when moving to vNext, we decided to go via the custom actions route.
We added custom actions for both CSS and JS to a test site. On browsing to our test site, we found out that the UI was appearing as desired but only with a noticeable lag.
As it appeared, what was happening was that the corev4.css was getting applied and then after around 2 seconds our custom CSS would be applied leading to an unpleasant flickering effect.
I went through a project named Branding.CustomCSS present in the PnP samples which did a similar thing of applying the CSS by rendering link tag via a custom action. In the documentation for that project, it was mentioned that this wasn’t a recommended approach for applying CSS if we are on Office 365 or April 2014 CU on-prem. Instead, the AlternateCSS approach was recommended.
I modified the code to use the AlternateCSS approach for rendering the CSS reference while keeping the custom action for rendering JS reference as it is. That certainly improved the experience.
We still had the JS file though which was manipulating the DOM to achieve the desired look and feel and that was still loading with a delay. We suspect that this is happening because in case of Custom Actions the code to insert JS references runs after the page is loaded. While the JS loads and executes, the UI that is shown meanwhile is without the DOM manipulations and is not what is desired. So the flickering of some components in the page, that the JS is responsible to beautify, is still present. This was not the case in our FTC where there was no noticeable lag.
I required some suggestions as to what approach we should follow so that we can do away with the delay in loading such asset files?
Also, is there an approach that would render JS references along with the HTML and not after page load like it does in case of custom actions?
I too are experiencing this issue. It is a really ordinary user experience. As you said, you can limit it by updating the logo and applying the alternate CSS in the provisioning process, but you still get that noticeable flicker. I have been experimenting with adding ms-hidden to the body tag at the start of the process, then removing it at the end, but it hasn't helped much. I might see about hiding the body from the get-go via the alternate css, then in the injector.js file override that style. Any suggestions from others would be greatly appreciated though. The PnP only has a basic injector scenario where it puts a message in the status area, but that isn't really a realistic scenario.
I am using Joomlart.com's JA_ORISITE template for my site, Everything works perfect except the css, It might be a feature of the template to maintains its original design, but This feature is a big hurdle for me. I have changed the css of the template as per my requirements, but every time I load or install a new module or plugin in to my installation, Default css is being loaded automatically, so Every time I need to fix the css as per my requirements and this frustrates me....
Glad to see any possible solution.... :)
T3 framework uses LESS to compile the CSS being used by the template. LESS is recompile for a multitude of reasons and it sounds like installing a new extension is one of them. When LESS is recompiled, you will lose any edits you have made to the CSS.
In order to made CSS edits that are not overwritten by LESS you have to put any custom CSS in custom.css. The template is configured not to touch that file so your changes are not lost.
Documentation is here - http://t3-framework.org/documentation/customization.html#custom-css
What file did you edit to make your customizations? I'm guessing you edited one of the included CSS files in the template. Your best bet is to make a new custom.css file and add that to the css being loading in index.php.
Working on a project for a client. They have a PDF that has been broken into separate pages as images, and they want to have each of those images appear on a single page - at least 40 images for this one page alone.
So far, I've just been placing them individually. Each time you go to place an image using the rich editor, you start at the media root - and the way the media library has been structured, these images are buried very deep within subfolders. So it takes about 20 seconds of clicking, scrolling, and reading to find each image to place it.
These images are sequential and placed in order in the media library. Is there a way I can select a group of images and just drop them in? There are going to be literally hundreds of these, and it's a huge waste of my (and my client's) time placing images one-by-one.
Going along the lines of what TwentyGotoTen has said, I would:
Structure your images in the Media Library within folders (if you haven't already done so)
Create a sublayout/xsl rendering that contains a repeater to render the images
Add the control to the layout and set the DataSource of that control to the Media Folder
The code should then retrieve all child items from that folder and render as necessary.
You may need the use of the Sublayout Parameter Helper to access the datasource from ascx codebehind.
I'm assuming you just want the images to appear one after the other with nothing else inbetween. Rather than embedding images in rich-text perhaps you should consider creating a multilist field for the images in the template and create a rendering / sublayout to render them.
You can set a more suitable source for the multilist than the media root. This should make it a lot easier to select the images.
Mark van Aalst has created a custom image field that allows to do this a bit easier as well.
Have a read through this. This is also available on Sitecore's Marketplace: Multiple Images Selector
It will allow you to select your images through a multilist field, but it'll show the images as an image field with multiple images.
I think this is pretty much the solution TwentyGotoTen is talking about as well, but shows the thumbnail of the selected images as well.
I have a few child templates which have extraheads which include the jquery script. Sometimes they are used together. How can I have the jquery javascript file loaded only once? If it were convenient to set template variables, I could set and check one before including the line.
My advice: Just include jQuery on your base's <head> and call it a day. Saves you from having to worry if a child template uses jQuery or not and it is just a 19kb download on the first page load and that's it. If you use Google's API cloud, it may not even be any as the user might have it cached from another site.
This may not work for you, but I advice you to consider it if possible.
My usual approach to this problem is to either wrap all of my child templates in one template that takes care of my includes (JS and CSS). I then make sure my caching is set properly, so that these scripts are only downloaded once per user. In other words, I force the download of all my external scripts on the first view, then rely on caching to not redownload the JS each time.
Combining all of your JS into one file will also improve download time due to the reduction in requests that will be generated.
Another thing to note is that you mentioned putting the JS in heads. While most people do this, placing JS in the head can make your pages appear to load slower. JS files are not downloaded in parallel, so they block all other downloads. Google and Yahoo recommend placing JS at the bottom of your page where possible to improve the user experience.
See the Yahoo YSlow tool and the Google PageSpeed tool for this.
I'd mostly bite the bullet and load jQuery with every template. But if you really really really have to have this feature, then I'd recommend a custom template tag. Check out the docs, especially the part about setting a variable in the context.
You could define separate blocks for your script and for other extraheads in base template.
In base template leave block for your script blank. Fill it with link to a file when needed in templates which are extending base.
You could pass all required files as a context variable and then write a template tag that removed duplicates and loaded what was left.
You could control load order this way also.