首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让HTML在我喜欢的时间内运行我的JavaScript?

如何让HTML在我喜欢的时间内运行我的JavaScript?
EN

Stack Overflow用户
提问于 2016-01-22 06:43:04
回答 1查看 136关注 0票数 0

我希望我的HTML代码永远运行JS代码,或者至少运行很长一段时间。我如何才能做到这一点呢?

代码语言:javascript
复制
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<title>2D Sierpinski Gasket</title>
<script language ="JavaScript" src ="RandomCircle">
</script>

<script language ="JavaScript" src ="webgl-utils.js"></script> 
<script language ="JavaScript" src ="InitShaders.js"></script> 
<script language ="JavaScript" src ="MV.js"></script> 
<script>
 var mar = setInterval(myTimer, 1000);
</script>

<script language ="JavaScript" src ="RandomCircle.js"></script>
<script id="vertex-shader" type="x-shader/x-vertex">        
attribute vec4 vPosition;

void
main()
{
    gl_PointSize = 1.0;
    gl_Position = vPosition;
}
</script>

<script id="fragment-shader" type="x-shader/x-fragment">
precision mediump float;

void
main()  
{
    gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
}
</script>


  <body>


    <canvas id="gl-canvas" width="512" height="512">
      <!-- The following message is displayed if the browser doesn't support HTML5 -->
      Sorry; your web browser does not support HTML5's canvas element
    </canvas>
  </body>
</html>

正如您所看到的,我尝试使用var mar作为setInterval,但不幸的是我不太理解它。

这是Js。

代码语言:javascript
复制
var canvas;
var gl;
var x = Math.random(); 
var y = Math.random();
var center  = vec2(x, y);

var points = [];

var numCirclePoints = 30;
var radius = 0.5;       


window.onload = function init() {
var myFunction = function() {};
x = Math.random(); 
y = Math.random(); 
    canvas = document.getElementById( "gl-canvas" );


    gl = WebGLUtils.setupWebGL( canvas );
    if ( !gl ) { alert( "WebGL isn't available" ); }

    gl.viewport( 0, 0, canvas.width, canvas.height );
    gl.clearColor( 1.0, 1.0, 1.0, 1.0 );

    //
    //  Load shaders and initialize attribute buffers
    //
    var program = initShaders( gl, "vertex-shader", "fragment-shader" );
    gl.useProgram( program );

    points.push( center );
    createCirclePoints( center, radius, numCirclePoints );

    var vBuffer = gl.createBuffer();
    gl.bindBuffer(gl.ARRAY_BUFFER, vBuffer);
    gl.bufferData(gl.ARRAY_BUFFER, flatten(points), gl.STATIC_DRAW);

    var vPosition = gl.getAttribLocation(program, "vPosition");
    gl.vertexAttribPointer(vPosition, 2, gl.FLOAT, false, 0, 0);
    gl.enableVertexAttribArray(vPosition);
    var myFunction = function() {
    init(); 

    };


    render();
}


// Create the points of the circle
function createCirclePoints( cent, rad, k )
{
    var dAngle = 2*Math.PI/k;
    for( i=k; i>=0; i-- ) {
        a = i*dAngle;

        var p = vec2( rad*Math.sin(a) + cent[0], rad*Math.cos(a) + cent[1] );
        points.push(p);
    }
}

function render() {

    gl.clear( gl.COLOR_BUFFER_BIT );

    // Draw circle using Triangle Fan
    gl.drawArrays( gl.TRIANGLE_FAN, 0, numCirclePoints+2 );

    window.requestAnimFrame(render);
    init();
}

我只希望JS在HTML中重复自己,我该如何实现呢?

EN

回答 1

Stack Overflow用户

发布于 2016-01-22 06:46:25

正如您所看到的,我尝试使用

作为setInterval,但不幸的是我不太理解它。

你绝对可以使用这个。只需将3000替换为您希望代码运行的频率。

代码语言:javascript
复制
setInterval(function(){
    // Your repeating code here
), 3000 };

如果这不起作用,请检查您的控制台,并添加一些console.logs,以及解释脚本的作用,以帮助我们理解。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34935770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档