Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Javascript动态消息滚动程序_C#_Jquery_Asp.net - Fatal编程技术网

C# Javascript动态消息滚动程序

C# Javascript动态消息滚动程序,c#,jquery,asp.net,C#,Jquery,Asp.net,我慢慢地疯了。我想在网页上放一个文本标记器。它将在监视器上运行,甚至连鼠标都没有连接。它只是显示建筑物周围的一些信息。我想补充一点,我认为这是个好主意。底部的滚动文本消息,少数人可以编辑 我之所以使用它,是因为它是唯一一个看起来滚动足够平滑的工具,并且不是那么神秘,我需要加入开发团队才能理解 因为我不能仅仅改变div文本并让爬虫滚动它。我试着把它放在一个更新面板中,在它呈现时设置div文本,然后重新输入爬虫程序。控制消息的div位于一个名为“crawlerUpdate”的更新面板中。msgStr

我慢慢地疯了。我想在网页上放一个文本标记器。它将在监视器上运行,甚至连鼠标都没有连接。它只是显示建筑物周围的一些信息。我想补充一点,我认为这是个好主意。底部的滚动文本消息,少数人可以编辑

我之所以使用它,是因为它是唯一一个看起来滚动足够平滑的工具,并且不是那么神秘,我需要加入开发团队才能理解

因为我不能仅仅改变div文本并让爬虫滚动它。我试着把它放在一个更新面板中,在它呈现时设置div文本,然后重新输入爬虫程序。控制消息的div位于一个名为“crawlerUpdate”的更新面板中。msgString是一个全局Javascript变量,在div重置时,我用它来保存值

我已经设置了
var oCrawlerUpdate=setInterval(函数(){updateCrawler()},10000)
每10秒更新一次消息(仅用于测试,轮询时间会更长)

我的更新爬虫看起来像:

    function updateCrawler(){
        msgString = '';
        $.getJSON('getCrawlerText.aspx', function (data) {
            $.each(data, function (index, elem) {
                msgString += index + 1 + '. ' + elem.message + '- - -';
            });

            if ($('#textCrawler').html() != msgString)
                __doPostBack("<%= this.postBackVehicle.UniqueID %>", "");
        });
    }
它在Firefox中100%工作。我更改了数据库中的消息,在接下来的10秒内,滚动条会重新启动并显示新消息。当我将它加载到人们将要使用的IE7中时,我在jQuery(1.4.1)文件的某个地方得到了一个未定义的错误,而不是在我的代码中,我不知道从哪里开始。很久以前,当我进行测试时,我能够在每次添加滚动条之前让div显示新消息。我可以在div中看到消息一闪而过,但在文字后立即出现错误

我还应该指出,onLoad div是空白的,并且在第一次通过它时是有效的。它会滚动我的加载消息,直到10秒后的第一次轮询。我几乎可以肯定的是,我正在使这件事变得比需要的要困难得多,但我不知道

我还在谷歌上搜索其他的滚动工具,但这是我一直以来最接近的,我想知道为什么IE会让我消化不良。我知道IE是个善变的野兽,我希望这是件相当容易的事。我离得很近,我想继续前进

编辑:我没有完全使用提供的答案,但我放弃了滚动程序库并使用了两个函数

    function resetCrawler() {
        var contWidth = $('#scrollContainer').width();
        var blockWidth = $('#textCrawler').width();
        var moveLen = (contWidth + blockWidth) * -1
        var timeFigure = (-1 * moveLen)/.05;
        //console.log("Container: " + contWidth + " Block: " + blockWidth + " MovementSpan: " + moveLen + " TimeSpan: " + timeFigure);

        $('#textCrawler').html(msgString).css('left', contWidth).animate({ left: moveLen }, timeFigure, 'linear', function () { resetCrawler() });
    }

    function updateCrawler(){
        msgString = '';
        $.getJSON('getCrawlerText.aspx', function (data) {
            $.each(data, function (index, elem) {
                msgString += index + 1 + '. ' + elem.message + '- - -';
            });

            if ($('#textCrawler').html() != msgString) {
                resetCrawler();
            }
        });
    }
我只是做了一个px/ms的计算,让它以相同的速度滚动,不管消息有多长。我怀疑我遇到了与您发布的链接相同的问题,那就是我在jQuery中过度调用了某些内容。我只是在结束时再次调用它,这是由内部分区的宽度决定的。还有更多的工作要做,但我称它足够好


谢谢你的帮助。

我完全支持服务器端代码,大多数时候我都反对计时器,但是如果你所做的只是滚动一些文本,没有鼠标输入,也没有其他需要运行的脚本,为什么不使用计时器呢

显式地将AJAX调用设置为不缓存结果,并使用计时器每隔一段时间调用AJAX以更新文本

我在这里看到的唯一问题是确保您仍然平稳地滚动,而计时器不会影响执行移动的能力


更新:我发现它实际上告诉了您如何执行此操作,使用的示例与您希望执行的操作相匹配



如果你对此有任何疑问,请告诉我。祝你好运!:)

您希望多久更新一次文本?可能每隔5分钟检查一次。也许更长。好吧,看看我在回答中提到的帖子。如果这还不能回答你的问题,我可能还有一些想法。
    function resetCrawler() {
        var contWidth = $('#scrollContainer').width();
        var blockWidth = $('#textCrawler').width();
        var moveLen = (contWidth + blockWidth) * -1
        var timeFigure = (-1 * moveLen)/.05;
        //console.log("Container: " + contWidth + " Block: " + blockWidth + " MovementSpan: " + moveLen + " TimeSpan: " + timeFigure);

        $('#textCrawler').html(msgString).css('left', contWidth).animate({ left: moveLen }, timeFigure, 'linear', function () { resetCrawler() });
    }

    function updateCrawler(){
        msgString = '';
        $.getJSON('getCrawlerText.aspx', function (data) {
            $.each(data, function (index, elem) {
                msgString += index + 1 + '. ' + elem.message + '- - -';
            });

            if ($('#textCrawler').html() != msgString) {
                resetCrawler();
            }
        });
    }