问题标签 [render-to-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Laravel 错误:方法 Illuminate\View\View::__toString() 不得抛出异常
你在 Laravel 工作时见过这个可爱的错误吗?
我见过它,它非常烦人。我发现了引发此错误的两个原因。我只是想帮助人们不要花费数小时和数小时的时间。
查看下面的答案和情况。:)
django - Django 1.6 - 从视图导入/解析后解析模板标签
首先,我对 Django 比较陌生,所以如果我有一些基本的误解,请原谅我。我正在寻找解析一些作为 Django 渲染的一部分导入的 Django 模板标签。我看到的最终问题是 HTML/JS 部分被正确调用和显示,但最后一个 Django 标记在页面上呈现为纯文本。我意识到这是因为我在一个步骤之前渲染视图太早了,但我不确定如何正确地进行此操作。
这是基本的调用堆栈(简化):
模板1
模板2:
为 template2 中的上述 DATALIST 生成所需的 Django / HTML 的 python 代码:
上面的 python 被传递给 Django View.py:
现在,主要问题是显示的结果 HTML 可以很好地显示 HTML 和 JS,但 Django 模板标签以文本形式公开,并且不会将图表显示定向到所需的 div 中。例如 template2.html 被视为:
我尝试了一些不同的创可贴修复,但我宁愿了解如何正确地做到这一点。我尝试过但可能被误解的一件事是,在返回渲染步骤之前:
谢谢你的帮助。如果需要任何澄清,请告诉我!
ajax - 使用 django ajax 和 render_to_string 创建 iframe 内容
我正在尝试创建类似于 twitter 允许网站嵌入推文的可嵌入内容。
例如,twitter 允许用户复制粘贴存根 blockquote 和 javascript,在运行 js 时,将 blockquote 替换为内容的 iframe。
我做过类似的事情(我正在使用 django)
然后,widgets.js 脚本对 django 视图方法进行 ajax 调用,该方法调用 render_to_string 并为 iframe 加载所需的 HTML。如果返回简单的 HTML,那么一切都会完美运行,因为它只需要类似的东西iframe.get()[0].contentWindow.document.write(content)
但这是我的问题。我要加载的 HTML 需要 DataTables,而 DataTables 应该在 $(document).ready() 中初始化一个表。因为这是 iframe 内容,所以永远不会调用 document.ready() (据我所知)。目前,我已经能够通过将我的 javascript 放在 HTML 的最末尾来初始化 DataTable,但不能保证完成该 init 调用后 html 会完全加载。
最终的问题是时机。我需要动态生成的 iframe 内容(通过 django 模板使用 ajax 加载)在加载到 iframe之前执行其 javascript。
有没有办法强制执行这个时间?
c++ - 在编译时打印类型未知的数据 - 我可以在没有 switch(name_of_type) 的情况下执行此操作吗?
假设我需要实现一个具有以下签名的函数:
应该将len
元素打印/流式传输buffer
到输出流os
。如果我在编译时有类型,那么显然我只会有
但我从其他地方得到缓冲区,只有一个字符串指示它们的类型。
显然我做不到
在 C++ 中。我该怎么做?我知道 C++ 没有反射,但我能比每次都在类型表中查找更好吗?还是使用字符串到type_info
s 的静态映射?
笔记:
- 我可以要求额外的元数据。
- 我可以更改签名
- 我在编译时无法获得任何其他信息。
performance - React renderToString() 性能和缓存 React 组件
我注意到reactDOM.renderToString()
在服务器上渲染大型组件树时,该方法开始显着减慢。
背景
一点背景。该系统是一个完全同构的堆栈。最高级别的App
组件呈现模板、页面、dom 元素和更多组件。查看 react 代码,我发现它渲染了大约 1500 个组件(这包括任何被视为简单组件的简单 dom 标签,<p>this is a react component</p>
.
在开发中,渲染约 1500 个组件需要约 200-300 毫秒。通过删除一些组件,我能够在约 175-225 毫秒内获得约 1200 个组件来渲染。
在生产中,大约 1500 个组件上的 renderToString 大约需要 50-200 毫秒。
时间似乎是线性的。没有一个组件是缓慢的,而是许多组件的总和。
问题
这会在服务器上产生一些问题。冗长的方法导致服务器响应时间长。TTFB 远高于应有的水平。对于 api 调用和业务逻辑,响应应该是 250 毫秒,但是对于 250 毫秒的 renderToString,它会加倍!对 SEO 和用户不利。此外,作为一种同步方法,renderToString()
可以阻止节点服务器并备份后续请求(这可以通过使用 2 个独立的节点服务器来解决:1 个作为 Web 服务器,1 个作为单独渲染反应的服务)。
尝试
理想情况下,在生产环境中 renderToString 需要 5-50 毫秒。我一直在研究一些想法,但我不确定最好的方法是什么。
思路一:缓存组件
任何标记为“静态”的组件都可以被缓存。通过将缓存与渲染标记保持一致,renderToString()
可以在渲染之前检查缓存。如果它找到一个组件,它会自动抓取字符串。在高级组件上执行此操作将保存所有嵌套子组件的安装。您必须将缓存的组件标记的反应 rootID 替换为当前的 rootID。
想法 2:将组件标记为简单/愚蠢
通过将组件定义为“简单”,react 应该能够在渲染时跳过所有生命周期方法。React 已经为核心的 react dom 组件( , 等)做到了这<p/>
一点<h1/>
。扩展自定义组件以使用相同的优化会很好。
想法 3:在服务器端渲染上跳过组件
不需要服务器返回的组件(没有 SEO 值)可以简单地在服务器上跳过。客户端加载后,设置一个clientLoaded
标志true
并将其传递下来以强制重新渲染。
关闭和其他尝试
到目前为止,我实现的唯一解决方案是减少在服务器上呈现的组件数量。
我们正在关注的一些项目包括:
- React-dom-stream (仍在为测试实现这个)
- Babel 内联元素 (似乎这与想法 2 一致)
有没有人遇到过类似的问题?你能做什么?谢谢。
java - 如何转换数字并将其存储在 char 数组中,然后将 char 数组转换为 String 以便打印整数?
我有一个存储了四个字符的 char 数组,我需要在 char 数组中添加一个整数,然后将 .txt 添加到 if 的末尾,然后将整个内容渲染为字符串,以便我可以使用它来创建文件对象. 但是当我运行整个过程时它不起作用。使用 println 输出每一步发生的事情,它向我显示存储在 char 数组中的数字正在打印为字符串,如下所示:( 0001 ) 而不仅仅是这个 (1)。为什么会这样,我该如何解决?我在这里输入了一段简短的代码来演示这个问题。下面的 printline 语句的输出是: temp 0001 .txt 而不是 temp1.txt 这是我想要得到的。谢谢你尽你所能的帮助。
ruby-on-rails - Rails render_to_string
我在使用 rails render_to_string 函数时遇到了困难。我已经使用 --api 标志创建了一个应用程序,所以我认为这可能是问题所在,因为我已经在“完整”rails 应用程序中进行了测试,并且它的工作正常。
基本上我在打电话:
我也试过
它应该返回该模板的 html。文件名是 print.html.erb 并且只有基本数据,即
当我输出 body_html 它是空的。
我引用了这个 SO 问题What is the correct way to render_to_string in wicked pdf?我还将使用 Wicked PDF 生成 pdf 文件。
非常感谢
node.js - 简单的服务器/客户端路由 react-express(nodejs)
App.js 有一个链接 - 我不明白我是否需要动作创建者/减少者?如果是这样,如何将它与服务器端渲染连接起来?
基本上加载 otherComponent - 应该通过路径从 server.js 进行 API 调用并将响应注入回组件 - 反应动作在这张图片中的位置是什么?
server.js: