小编Sha*_*313的帖子

虽然服务器发送事件的循环导致页面冻结

我目前正在进行一项使用Server-Sent Events接收消息的聊天.但是,我遇到了一个问题.服务器发送的事件从未连接并保持挂起状态,因为页面未加载.

例如:

<?php
    while(true) {
        echo "data: This is the message.";
        sleep(3);
        ob_flush();
        flush();
    }
?>
Run Code Online (Sandbox Code Playgroud)

我希望每隔3秒,"数据:这就是消息." 将被输出.相反,页面只是不加载.但是,对于服务器发送的事件,我需要这种行为.有没有办法来解决这个问题?

编辑:

完整代码:

<?php
   session_start();

    require "connect.php";
    require "user.php";

    session_write_close();

    echo $data["number"];

    header("Content-Type: text/event-stream\n\n");
    header('Cache-Control: no-cache');

    set_time_limit(1200);

    $store = new StdClass(); // STORE LATEST MESSAGES TO COMPARE TO NEW ONES
    $ms = 200; // REFRESH TIMING (in ms)
    $go = true; // MESSAGE CHANGED

    function formateNumber ($n) {
            $areaCode = substr($n, 0, 3);
            $part1 = substr($n, 3, 3);
            $part2 = substr($n, 6, …
Run Code Online (Sandbox Code Playgroud)

php server-sent-events

23
推荐指数
4
解决办法
4208
查看次数

查找和替换Textarea

有没有人知道如何制作查找和替换的东西,当你只需点击下一步它会带你到下一个找到的项目?

编辑:

对于Textarea.我想要一个可以向Textarea添加查找和替换的Javascript代码.我不想只是用.

搜索()

或替换().

在片刻我试试这个:

function allIndexes() {
var indices = new Array();
var index = 0;
var i = 0;
while(index = $('#text').val().indexOf($('#search').val(), index) > 0) {
indices[i] = index;
i++;
}
return indices;
}
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用.

html javascript css jquery replace

13
推荐指数
1
解决办法
5578
查看次数

如何检测用户鼠标移动的距离?

我正在尝试检测鼠标移动的距离(以像素为单位).我目前正在使用:

$(document).mousemove(function(event) {
    var startingTop = 10,
        startingLeft = 22,
        math = Math.abs(((startingTop - event.clientY) + (startingLeft - event.clientX)) + 14) + 'px';
    $('span').text('From your starting point(22x10) you moved:   ' + math);
});
Run Code Online (Sandbox Code Playgroud)

但是,我觉得这不是正确的方法,或者是这样吗?它与我不一致.

以下是它现在如何工作的演示:http://jsfiddle.net/Em4Xu/1/

额外细节:

我实际上正在开发一个拖放插件,我想创建一个名为的distance函数,就像draggable一样,你需要在拖动它之前拉动鼠标一定数量的像素.我不是100%确定如何做到这一点,所以首先我需要获取鼠标从startingTop和startingLeft位置移动的像素.

有没有人有什么建议?

javascript math jquery

12
推荐指数
3
解决办法
2万
查看次数

我需要一种新的方法来检测元素HTML是否有变化

现在我试图找到一种方法来检测元素HTML何时发生了变化.

我正在尝试:

var a, b;
setInterval(function() {
    a = $('#chat').text();
}, 150);
setInterval(function() {
    b = $('#chat').text();
    if (a !== b) {
        alert("There has been a new message.");
    }
}, 200);?
Run Code Online (Sandbox Code Playgroud)

我做的是每隔150毫秒我检查一次#chat的HTML然后每隔200秒我再次检查HTML,然后检查变量a是否等于变量b它们将来我会这样做但是现在我只是提醒一些事情

你可以在这里看到它:http://jsfiddle.net/MT47W/

显然这种方式不起作用,根本不是很准确.有没有更好的/不同的做/实现这个?

感谢您的帮助,我一直在努力弄清楚如何做到这一点好一周,但我找不到解决方案,我希望我把这个问题发布在正确的地方,并且在合适的时间.

javascript jquery detect setinterval

12
推荐指数
1
解决办法
1734
查看次数

添加cookie以进行拖放

我正在创建一个拖放插件,我想让它有点独特我会添加一个cookie功能来保存拖动元素的位置.

我目前正在使用以下代码来获取和设置cookie:

$.setCookie = function(c_name, value, exdays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}
$.getCookie = function(c_name) {
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++) {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name) {
            return unescape(y);
        } …
Run Code Online (Sandbox Code Playgroud)

javascript cookies jquery drag-and-drop position

9
推荐指数
1
解决办法
331
查看次数

沿着日期和时间滚动的Javascript滑块

我已经看到了一些选择日期范围的jQuery滑块的好例子:http://ghusse.github.com/jQRangeSlider/stable/demo/

时间范围:http://marcneuwirth.com/blog/2011/05/22/revisiting-the-jquery-ui-time-slider/

但我正在寻找能够选择日期,月,日分钟的东西.能够将它作为日期范围选择器和普通滑块都很棒.

有没有人见过这样的实现?使用Unix时间作为我的值的正常jQuery UI滑块是否有意义?

jquery jquery-ui datetimepicker uislider

7
推荐指数
2
解决办法
2万
查看次数

影响服务器运行EventSources

我正在建立一个聊天只是为了好玩.我从来没有这样做,而我却在总体上试用EventSource API (Server-Sent Events)JavaScript.我刚刚听说它大约3天前,我觉得它比设置一个有趣且容易得多WebSocket.

我知道长时间的民意调查耗费了大量资源.但是,由于我从未听说过EventSource,它如何影响服务器?它是否耗尽了相同数量的资源?

我注意到,在Networks TabGoogle Chrome Developers Tool,该EventSource的不创建一个具有较大规模的内容(超过时间)的请求.拥有大量内容的1个请求会更好吗?

我的聊天目前正在运行两个EventSource.一个用于聊天本身(每次运行2500ms)和聊天中的"正在输入..."机制(每次运行250ms).

在大约一分钟的聊天之后,两个请求的组合内容大小是关于的150kb.这将增加更多的消息.

我担心我的主人会暂停我的帐户.这是我的一个朋友发生的事情,他使用了民意调查或长期民意调查(我忘了).我不确定EventSource是否使用尽可能多的资源作为轮询或长轮询.

主要问题:EventSource如何影响服务器?

  • 它是如何使用资源的?
  • 除了使用网络套接字之外还有什么更好的吗?
  • 拥有1个创建大型内容或有多个请求携带少量数据的请求会更好吗?

javascript server-sent-events

6
推荐指数
1
解决办法
435
查看次数

循环遍历window对象中的所有项

昨晚,我真的很无聊,我想到了一个小小的脚本.基本上我在考虑PHP与JavaScript相比有多少内置函数,然后我意识到我真的不知道JavaScript实际上有多少函数.我想过编写一个脚本来查看窗口对象,包括对象内的每个对象,等等.我编写了脚本并且它有效(在较小的对象上尝试过).

但是,我的问题是JavaScript不会让我循环整个windows对象.

我试过了:

for (var key in window) {
    console.log(key);
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

var a = Object.create(window);
for (var key in a) {
    console.log(key);
}
Run Code Online (Sandbox Code Playgroud)

两段代码都给了我:

top
window
location
external
chrome
Intl
v8Intl
document
script1374438467163
$pick
$try
IFrame
Elements
OverText
IframeShim
Mask
Clientcide
dbug
value
debugCookie
StyleWriter
StickyWin
TabSwapper
Collapsible
Collapsable
Drag
Cookie
Accordion
Asset
Spinner
MultipleOpenAccordion
MooTools
typeOf
instanceOf
Type
Hash
Native
$A
$arguments
$chk
$clear
$defined
$each
$empty
$extend
$H
$merge
$lambda
$mixin
$random
$splat
$time
$type
$unlink
Browser …
Run Code Online (Sandbox Code Playgroud)

javascript loops for-loop for-in-loop

6
推荐指数
1
解决办法
4069
查看次数

独特的查找/替换系统不起作用

我正在创建一个真正的查找/替换系统,但其中一个主要功能不起作用.

应该发生什么:

一旦搜索到所有找到的单词,将在页面上突出显示.我想要它所以你可以点击它然后打开一个Div说:用{INPUT}替换{WORD HERE}然后你可以点击替换它将用输入中的文本替换该单词.

我正在使用findAndReplace插件,我不想改变它.

什么不会工作:

单击该单词后,该框将打开,但我不知道如何使找到的文本替换为输入中的文本.我的一些代码是一行格式,因为我有:

return 'Code Here';
Run Code Online (Sandbox Code Playgroud)

我的Javascript:

shortcut.add("Ctrl+F", function() {
    $('#finder').animate({
        'bottom': '-53px'
    }, 100);
});
shortcut.add("Shift+F", function() {
    $('#finder').animate({
        'bottom': '0px'
    }, 100);
});
shortcut.add("Ctrl+C", function() {
    $('#finder').animate({
        'bottom': '-150px'
    }, 100);
});

function findAndReplace(searchText, replacement, searchNode) {
    if (!searchText || typeof replacement == '') {
        $('.r').css({
            'background': 'white',
            'color': 'black'
        });
        return;
    }
    if (!searchText || typeof replacement === 'undefined') {
        alert('No Items Found');
        $('.r').css({
            'background': 'white',
            'color': 'black'
        });
        return;
    }
    var regex …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery submit find

5
推荐指数
1
解决办法
186
查看次数

在可以连续使用的对象内创建属性

我是那种喜欢做很多项目的人,特别是如果它只涉及JavaScript,因为这是我的强项.

我想到了一个有趣的想法.用JavaScript编写一小块CSS.然后可以在Blob中使用这些CSS片段或以其他方式实现到网页中.

Most of the time, I do projects just for FUN and for build up in experience.

让我们更多地了解我们正在使用的工作.其中一个JavaScript样式表可能如下所示:

var sheet = {
    "h1": {
        "font-size": "24px",
            "color": "blue",
        children: {
            "a": {
                "font-size": "15px"
            }
        }
    },
    "a": {
        color: "red"
    }
};
Run Code Online (Sandbox Code Playgroud)

这将返回:

h1{font-size:24px;color:blue}h1 a{font-size:15px}a{color:red}

注意元素中的children属性h1.

这是我的筑巢方式,制作了h1 a.

然而我的问题是,我怎么能连续筑巢,所以我最终会得到类似的东西:

"h1 div span a"

这意味着每个嵌套的子级都需要能够使用该children属性.

我到目前为止的脚本在下面(属于变量sheet).

var to = "";
for (var el in sheet) {
    var props = …
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
56
查看次数