小编Nei*_*man的帖子

jQuery AJAX调用中的内存泄漏

我写了一个小聊天框小部件,它每秒运行一次ajax调用,以获取已发布的新消息.问题是它正在泄漏内存,只有大约15分钟的打开后它会崩溃我的浏览器(Firefox).

这可能是我,因为我是一个相对新手,我敢肯定我错过了一些东西或者没有让我的变量等等.

var chat = {}
chat.fetchMessages = function() {
    $.ajax({
        url: '/chat_ajax.php',
        type: 'post',
        data: { method: 'fetch'},
        success : function(data) {
            $('#chat .messages').html(data);
            $("#chat").scrollTop($("#chat")[0].scrollHeight);
        }
    });
}
chat.interval = setInterval(chat.fetchMessages, 1000);
chat.fetchMessages();
Run Code Online (Sandbox Code Playgroud)

有人可以看一下我的(基本)代码,看看你是否能找到内存泄漏发生的地方,以及我做错了什么?我是否需要取消某些变量或其他内容?

非常感谢!

ajax jquery memory-leaks setinterval

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

发音性算法

我正在努力寻找/创建一个可以确定随机5个字母组合的可读性的算法.

到目前为止,我发现的最接近的是来自这个3岁的StackOverflow线程:

衡量一个单词的可读性?

<?php
// Score: 1
echo pronounceability('namelet') . "\n";

// Score: 0.71428571428571
echo pronounceability('nameoic') . "\n";

function pronounceability($word) {
    static $vowels = array
        (
        'a',
        'e',
        'i',
        'o',
        'u',
        'y'
        );

    static $composites = array
        (
        'mm',
        'll',
        'th',
        'ing'
        );

    if (!is_string($word)) return false;

    // Remove non letters and put in lowercase
    $word = preg_replace('/[^a-z]/i', '', $word);
    $word = strtolower($word);

    // Special case
    if ($word == 'a') return 1;

    $len = strlen($word);

    // Let's not parse an …
Run Code Online (Sandbox Code Playgroud)

php algorithm function

3
推荐指数
1
解决办法
2360
查看次数

PHP:在'$ this'中使用'$ this'?

可能是一个新手问题,但我是自学成才的,我正在尝试编辑一些超出我的舒适区域的代码,并且不会出现问题.请帮忙!

它是一个从MySQL数据库中选择数据并返回数组的函数.它使用其他几个"核心"函数来帮助建立数据库连接.

原始脚本如下所示:

class Core{
    protected $db, $result;
    private $rows;

    public function __construct() {
        $this->db = new mysqli('localhost', 'root', 'password', 'db');
    }

    public function query($sql){
        $this->result = $this->db->query($sql);
    }

    public function rows(){
        for($x = 1; $x <= $this->db->affected_rows; $x++){
            $this->rows[] = $this->result->fetch_assoc();
        }
    return $this->rows;
    }
}

class Chat extends Core{
    public function fetchMessages(){
        $this->query("
            SELECT  `chat`.`message`,
                    `users`.`username`,
                    `users`.`user_id`
            FROM    `chat`
            JOIN    `users`
            ON      `chat`.`user_id` = `users`.`user_id`
            ORDER BY `chat`.`timestamp`
            DESC
        ");
        return $this->rows();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,在Chat类的fetchMessages()函数中有一个SELECT子句,它将"chat"表与"users"表连接起来以获取用户名.如果由于某种原因(删除,禁止,退出等),用户表中不存在用户ID,则SELECT子句不返回任何结果.

为了在用户不存在的情况下它仍然返回消息,我想我需要将JOIN分成2个SELECT CLAUSES:

  • 首先,SELECT …

php mysql join class this

0
推荐指数
1
解决办法
125
查看次数

标签 统计

php ×2

ajax ×1

algorithm ×1

class ×1

function ×1

join ×1

jquery ×1

memory-leaks ×1

mysql ×1

setinterval ×1

this ×1