小编Mat*_*ead的帖子

jQuery是否在每个循环中使用创建文档片段?

所以我读过jQuery在内部使用文档片段来加快渲染速度.但我想知道是否有人知道jQuery是否会在这种情况下使用createDocumentFragment我将使用每个循环将img元素附加到DOM?

var displayArray = []; // Lots of img elements

$.each(displayArray, function()
{
    $('#imgSection').append(this);
});
Run Code Online (Sandbox Code Playgroud)

或者我是否需要使用此代码以减少浏览器重排的次数?

var displayArray = []; // Lots of img elements
var imgHolder = $('<div/>');

$.each(displayArray, function()
{
    imgHolder.append(this);
});

$('#imgSection').append(imgHolder);
Run Code Online (Sandbox Code Playgroud)

此外,displayArray由其他代码(此处未显示)填充,该代码根据JSON文件中的路径创建img元素.

谢谢你的任何建议.

javascript jquery documentfragment

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

从php函数返回html的最佳方法?

所以我之前问了一个类似的问题,现在我只是更加困惑,所以我会以不同的方式问它......

我正在尝试做的是抽象我的PHP并将我的验证器中使用的html的部分作为错误消息放入到将html返回到页面中需要它们的位置的函数中.

我现在拥有的是:

<section>
<?php 
if($errMsg)
{
    errMsg();
}
?>
</section>

<?php
function errMsg()
{
       ?>
       <section>
           <p>O crap!  There was an error</p>
       </section>
       <?php
}
?>
Run Code Online (Sandbox Code Playgroud)

但在我之前提到的问题中,我被告知这样做是一种"肮脏的黑客",并且在这种情况下使用返回更好.但是要使用return我需要将所有返回的html分配给var并且为此我需要将html放在一个字符串中.我宁愿避免在字符串中输入两行以上的html,因为这样做的引号数量很大.

所以我想我要么使用heredoc语法,要么使用ob_start/ob_get_clean函数.我想知道的是.

1我是否需要费心去抽象我的代码呢?
2如果是这样,哪种方式是最好的做法?和/或
3我应该放弃网络开发并回到披萨送货上吗?: - \

html php

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

当某些内容被附加到内存中的DOM时,是否会导致浏览器重排?

当某些内容被附加到内存中的DOM时,是否会导致浏览器重排?或者仅当屏幕上的像素被告知要改变回流发生时?例如:

案例1: Img元素一次附加到DOM

var parentDiv = $('#imgHolder');
var imgArray = []; // Array of img paths populated in another function

$.each(imgArray, function()
{
    parentDiv.append(createImgEle(this)); // createImgEle() // returns an <img> with the right src
}
Run Code Online (Sandbox Code Playgroud)

情况2: Img元素放在一个单独的数组中,然后附加到DOM

var parentDiv = $('#imgHolder');
var imgArray = []; // Array of img paths populated in another function
var tempArray = []; // Holds the img elements until its fully populated

$.each(imgArray, function()
{
    tempArray.push(createImgEle(this));
}
parentDiv.append(tempArray);
Run Code Online (Sandbox Code Playgroud)

情况3:情况1或2,但默认情况下,parentDiv设置为display:none;在每个循环完成后可见.

基本上,我想知道的是,当屏幕像素被告知改变时,浏览器是否开始重排? …

javascript browser performance jquery

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

使用Ajax提交表单是否安全?

所以我的表单是用html构建的,并在JS中验证,它看起来像我想要的那样.现在显然我将在服务器端使用PHP验证输入,但我想知道它是否足够安全,使用Ajax提交表单然后在服务器端验证,而不是使用'submit'类型提交表单按钮和'动作'属性.基本上,使服务器端验证依赖于JS提交它是否安全?

这是我的表格:

<form name="contactForm" id="contactForm"><!-- The form has no action attribute because its submitted via Ajax -->
<div id="inputsWrapper">
    <div>
        <label for="fullName">Your Name: <span class="required">(required)</span></label>
        <input type="text" name="fullName" id="fullName" title="First &amp; last name" value="First &amp; last name" maxlength="50" />
    </div>
    <div>
        <label for="email">Your E-mail: <span class="required">(required)</span></label>
        <input type="text" name="email" id="email" title="E-mail address" value="E-mail address" maxlength="500" />
    </div>
    <div>
        <label for="subject">In Regards To: <span class="required">(required)</span></label>
        <input type="text" name="subject" id="subject" title="Subject" value="Subject" maxlength="50"/>
    </div>
    <div>
        <label for="message">Your Message: <span class="required">(required)</span></label>
        <textarea name="message" …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax

4
推荐指数
2
解决办法
2564
查看次数

当且仅当数组中的所有值都为真时返回true?

所以我有一个包含所有函数调用的数组来检查表单的输入.然后,我在数组中有一个foreach循环,以查看validate函数的返回值是true还是false.根据该结果,foreach所处的函数返回true或false.我想弄清楚的问题是如果所有验证函数都返回true,如何返回true.

这是我的代码:

public function valInputs()
{
    $valArray = array(
        valName($firstName),
        valName($lastName),
        valPhone($phone),
        valEmail($email)
    ); // these functions return true/false depending on validation

    foreach($valArray as $value)
    {
        if(!$value)
        {
            return false;
            break;
        }
        else
        {
           return true; // the problem is, true gets returned X number of times
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

关于如何保持多次返回的任何想法?感谢您的任何帮助.

php forms validation

2
推荐指数
1
解决办法
2951
查看次数

将 PDO 连接作为会话变量传递

因此,为了不重复自己,我只想创建一个 PDO 连接并使用会话变量在页面之间传递它。但是当我设置 PDO 连接并设置会话 var 时,var 会在我的下一页上返回为未设置吗?

这是我第一页上的代码:

session_start();
try
{
    $db = new PDO("mysql:host=".$dbHostname.";dbname=".$dbDatabase, $dbUsername, $dbPassword);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
    echo "It seems there was an error.  Please refresh your browser and try again. ".$e->getMessage();
}

$_SESSION['db'] = $db;
Run Code Online (Sandbox Code Playgroud)

然后我下一页上的测试代码返回为未设置。

session_start();
$db = $_SESSION['db'];

    if(isset($db))echo "set";
    else echo "not set";
Run Code Online (Sandbox Code Playgroud)

有任何想法吗??

连接很好,因为如果我从第一页调用函数并将 $db 作为参数传递,则该函数可以正常工作。那么为什么将数据库变量存储为会话不起作用呢?感谢您的任何帮助。

php pdo

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

如何在不重复jQuery addClass的情况下做得更好?

在页面加载时我的表单上我将输入中的默认文本设置为浅灰色,如下所示:

var formInputs = $('#notifyForm input');
formInputs.addClass('defaultText');
Run Code Online (Sandbox Code Playgroud)

然后我让他们使用removeClass在焦点上转回黑色.一切正常.我遇到的问题是,如果出现错误并且页面重新加载以显示PHP错误消息,那么仍在输入中的用户文本将变为灰色.我的解决方案是:

formInputs.addClass(function()
{
    if($(this).attr('value') === $(this).attr('title'))
    {
        $(this).addClass('defaultText');
    }
});
Run Code Online (Sandbox Code Playgroud)

但我知道在addClass处理程序中调用addClass会出现问题.任何人都可以提出更好的方法吗?谢谢.

javascript forms jquery

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

使用jQuery访问各个数组元素each()

我似乎无法找到答案,但你如何通过jQuery的每个方法中的索引号来访问单个数组元素?

Stright JS会这样做:

for(i=0; i<myArray.length; i++)
{
    if(i === 1)
    {    
        // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

但我似乎无法弄清楚如何在每种方法中使用查找索引号...?

myArray.each(function()
{
    if(this[1])
    {
        // doesn't work?
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助.

javascript jquery

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