我们有一堆域实体应该呈现为html格式,在弹出窗口中显示它们的详细信息.
我很乐意做这样的事情:
Product product = new Product(...);
product.ToHtml(); // or: HtmlRenderer.Render(Product);
Run Code Online (Sandbox Code Playgroud)
但我的主要问题是如何从后面做这些事情.我有3个不同的答案:
1.按代码渲染:
我可以简单地编写我的代码来在ToHtml方法(C#)中呈现Html - 问题是它太静态了.如果你想将标题移动到中间,你应该改变代码.而且,在C#中读取Html缩进非常困难.
2.使用XSL:
XSL文件可以轻松管理Html模板并使用XSLT我可以将XML文件转换到文档的正确位置.解析器已经由其他人编写(只需要学习语法)**为此我们需要每个对象都可以序列化为Xml.如果对象发生了变化 - > Xml将被更改 - > xslt也需要更改**这也会让我选择简单地缩进html例如:添加css功能和\或更改html设计
3.使用其他模板引擎:
编写我自己的C# - > Html模板引擎,这样它将从文件(*.template)中读取模板,并使用反射将正确的属性插入模板的正确位置.**在这个解决方案中,我们可以考虑许多问题,例如:语法应该如何?这件事好吗? %Name %% Description%以及我们如何处理数组?**也许我们可以使用现有的发动机(Brail或T4-Templating)?
你喜欢哪个?你知道一个好引擎吗?现在我更喜欢第二种解决方案,但它会非常慢.
谢谢
我在一个内部企业系统上工作,该系统具有使用Tomcat的Web前端.
编辑:理想情况下,我需要监控访问页面的客户端上的呈现.
当我提供ASP.NET页面时,我可以并行渲染页面上的各种控件吗?
我在页面上有一些Telerik控件(RadGrids),当我逐步浏览正在加载的页面时,似乎控件是数据绑定并连续呈现.也许这种行为是因为我迷上了调试器.
无论如何加载页面并在单独的线程上构建选择控件?这在概念上是否可行,还是必须按顺序完成?
嘿.我是OpenGL ES的新手,但我已经拥有了普通OpenGL的经验.我被告知,由于优化避免缓存未命中,使用隔行扫描数组作为顶点缓冲区要快得多.
我开发了一个顶点格式,我将使用它看起来像这样
struct SVertex
{
float x,y,z;
float nx,ny,nz;
float tx,ty,tz;
float bx,by,bz;
float tu1,tv1;
float tu2,tv2;
};
然后我使用了"glVertexAttribPointer(index,3,GL_FLOAT,GL_FALSE,stride,v);" 指向顶点数组.索引是我想要使用的属性之一,除了步幅之外,其他一切都没问题.在我决定将其添加到等式之前,它起作用了.我通过了尺寸(SVertex)和13*4这样的步幅,但它们似乎都没有效果.
如果它有任何重要性,我会画这样的原语
glDrawElements(GL_TRIANGLES,surface->GetIndexCount()/3,GL_UNSIGNED_INT,surface->IndPtr());在OpenGL规范中写道,步幅应该是从属性末尾(在本例中为z)到同一类型的下一个属性(在本例中为x)的字节大小.所以通过我的计算,这应该是13(nx,ny,nz,tx,ty ...... tuv2,tv2)乘以4(浮点数的大小).
我使用font-squirrel将字体嵌入到网站上(选择了Apply Hinting),并且在Chrome v15.0 for PC中无法正确呈现.字体显示,但很差.我确定font-squirrel给了我正确的代码,所以我认为我的CSS存在冲突.在此先感谢您的帮助.

@font-face {
font-family: 'RockwellStd-Light';
src: url('rockwellstdlight-webfont.eot');
src: url('rockwellstdlight-webfont.eot?#iefix') format('embedded-opentype'),
url('rockwellstdlight-webfont.woff') format('woff'),
url('rockwellstdlight-webfont.ttf') format('truetype'),
url('rockwellstdlight-webfont.svg#RockwellStdLight') format('svg');
font-weight: lighter;
font-style: normal;
}
h1 {
font-family:'RockwellStd-Light', Helvetica, Ariel;
font-size:34px;
color:#407d3b;
font-weight:lighter;
margin-left:20px;
}
h2 {
font-family:'RockwellStd-Light', Helvetica, Ariel;
font-size:32px;
color:#ece1af;
font-weight:lighter;
line-height:42px;
}
h3 {
font-family:'RockwellStd-Light', Helvetica, Ariel;
font-size:20px;
color:#FFF;
font-weight:lighter;
}
p {
font-family:'RockwellStd-Light', Helvetica, Ariel;
font-size:14px;
line-height:17px;
color:#333;
text-align:justify;
}
.criteria_table {
font-family:'RockwellStd-Light', Helvetica, Ariel;
font-size:14px;
color:#FFF;
}
Run Code Online (Sandbox Code Playgroud) 使用Java,是否有任何内置的方式来呈现文本,使其仅限于graphics2D对象上的矩形?
我知道我可以使用,Graphics2D.drawString但它只画了一行文字.
我也知道我可以用
FontMetrics fm= graphics.getFontMetrics(font);
Rectangle2D rect=fm.getStringBounds("Some Text",graphics);
Run Code Online (Sandbox Code Playgroud)
Font font在某些Graphics2D graphics对象上使用某些字符串渲染时获取有关字符串边界的信息.
所以我可以开始循环,打破我的字符串等等,迫使它适合某个矩形.
但我更不愿意写那些......
有没有现成的功能可以帮我吗?
我的情况
我有一个很大的人员列表,都有自己的个人资料图片和信息.所有项目都有一些CSS3样式/动画.
我正在使用:
<li ng-repeat="person in people">
Run Code Online (Sandbox Code Playgroud)
人们是一个包含来自外部JSON文件的超过150个对象的数组,这些对象都必须显示在同一页面上.
页面加载/渲染速度很慢,而不是因为$ http GET函数可以获取人员的JSON数据(只需要大约100毫秒),但是页面的渲染和所有css3样式的渲染都应用于每个item(如果我把我的CSS关闭它会变得更快).
我的主要问题
我可以慢慢使用页面渲染,但我真正想要的是检测每当我的重页加载其内容以启动和停止加载指示器时.我试过像这样做一个指令:
directive("peopleList", function () {
return function (scope, element, attrs) {
scope.$watch("people", function (value) {
var val = value || null;
console.log("Loading started");
if (val){
console.log("Loading finished");
}
});
};
});
Run Code Online (Sandbox Code Playgroud)
并将此指令放在正在加载我的人员列表的包装器div上.但是,每当我的JSON数据对象被填充时,加载似乎就会停止,这只需要大约100毫秒,但页面的实际视觉渲染需要更多像4-5秒.
我也尝试过像http://jsfiddle.net/zdam/dBR2r/这样的解决方案,但我得到的结果相同.
我需要的
当我浏览我的页面(它们都有相同类型的列表)时,我需要一些东西告诉我,只要页面已经完全加载并且对用户可见,这样我就知道何时隐藏我的加载指示器.
过去一周,我一直在努力实现类似游戏Antichamber(更准确地说是下面显示的这个技巧):
这是我希望实现的视频(尽管它是使用虚幻引擎4完成的;我没有使用它):https://www.youtube.com/watch?v = Off3JcoWrMZs
我查找了最好的方法,我发现了模板缓冲区.在这篇文章和这个代码("drawPortals()"函数)之间,我在网上找到了我几乎实现它.
它可以很好地与一个门户到另一个房间(不是一个可交叉的门户,这意味着你无法穿过它并被传送到另一个房间).在我的例子中,我正在绘制一个门户到一个简单的方形房间,里面有一个球体; 在门户网站后面还有另一个球体,我用来检查深度缓冲区是否正常工作并将其绘制在门户网站后面:
当我添加另一个接近此门户的门户时,会出现问题.在这种情况下,我设法正确显示另一个门户(灯光关闭,但右侧的球体颜色不同,表明它是另一个球体):
但是如果我转动相机以便第一个门户必须被绘制在第二个门户上,那么第一个门户的深度就会出错,而第二个门户将被绘制在第一个门户上,如下所示:
虽然应该是这样的:
所以,这就是问题所在.我可能在深度缓冲区做错了,但我找不到什么.
我的渲染部分的代码就是这样的:
glClear(GL_DEPTH_BUFFER_BIT);
glEnable(GL_STENCIL_TEST);
// First portal
glPushMatrix();
// Disable writing to the color and depht buffer; disable depth testing
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
glDepthMask(GL_FALSE);
glDisable(GL_DEPTH_TEST);
// Make sure that the stencil always fails
glStencilFunc(GL_NEVER, 1, 0xFF);
// On fail, put 1 on the buffer
glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP);
// Enable writing to the stencil buffer
glStencilMask(0xFF);
// Clean the …Run Code Online (Sandbox Code Playgroud) 我是React的新手,所以请不要严格判断.我在服务器上渲染我的React应用程序,并希望在前端执行代码.应用程序正确地呈现样式并且没有警告或错误,但是由于我使用的API应该在正面执行,现在可以使用空状态.
据我了解服务器渲染组件,因为服务器渲染和安装组件在服务器上,它不是调用componentDidMount()方法,应该做我的API调用和其他工作人员
这是我的组成部分
import React from 'react';
import {render} from 'react-dom';
import SpComparison from './spComparison.jsx';
import Comparison from './comparison.jsx';
import AnalystRatings from './analystRatings.jsx';
export default class Insights extends React.Component {
constructor(props){
super(props);
this.state = {
charts: []
}
let _this = this;
}
componentDidMount() {
console.log("I want to do log on front end side, but can't")
}
render () {
let charts = this.state.charts.map(function(i){
if (i.type == 'comparison'){
return <Comparison key={ i.id } config={ i.config } />
} …Run Code Online (Sandbox Code Playgroud) javascript rendering single-page-application reactjs react-router
问题是关于以下代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test</title>
</head>
<body>
One line of HTML code
<script>
// Synchronous delay of 5 seconds
var timeWhile = new Date().getTime();
while( new Date().getTime() - timeWhile < 5000 );
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
我在Firefox和Chrome中对它进行了测试,它们在5秒后显示(渲染):"一行HTML代码",而不是在5秒内.为什么浏览器会这样做?
我理解为什么浏览器在执行JavaScript时必须停止渲染,因为你可以用JavaScript改变元素的样式(作为例子).如果浏览器必须在同一时刻完全显示和更改内容,则会出现问题.这就是浏览器在执行JavaScript时阻止渲染的原因.
在上面的示例中,当从执行JavaScript开始时,"HTML解析器"已经解析了"一行HTML代码".它必须,因为JavaScript可以包含例如document.write,所以附加的字符串必须在前面的HTML之后.显然,在"解析HTML"和显示/呈现相同的HTML之间有一段时间,因为否则此示例中的浏览器已经在5秒内显示了某些内容,但事实并非如此.
当您用大量HTML代码替换"一行HTML代码"时,浏览器将在5秒内显示一些内容,因此原则上可以显示一些内容.
如果我是一个浏览器,那么我会这样做:
在这样的示例中,浏览器可以在5秒前显示一些内容.这在渲染方面是一个很大的速度提升.
也许这是浏览器可以改进的东西,但也许还有其他原因.也许有人知道更多,并可以解释我.