小编Jos*_*ody的帖子

JavaScript错误处理的最佳实践是什么?

我期待开始做我的JavaScript多一点错误的证明,而且我发现很多文档的使用try,catch,finally,和throw,但我不是专家在何时何地抛出错误找一吨的建议.

  • 每一段代码都应该包含在try/catch中吗?
  • 是否有更多这样的建议,在什么时候应该抓住错误?
  • 是否存在提高错误的缺点,而不是让代码在生产中无声地失败?
  • 就实现而言,这已经触及SO,但服务器日志JS错误是一种有效的策略吗?
  • 关于在我的应用程序中捕获错误,我应该知道的任何其他内容?

我也完全是因为听过有很多章节的书籍或对错误处理的深入解释而玩游戏.雄辩的JavaScript触及了这个问题,但对这个问题并没有很强的规定性或固执己见.

感谢您提出的任何建议!

javascript error-handling

128
推荐指数
4
解决办法
5万
查看次数

使用带有AJAX和jQuery的HTML5文件上传

不可否认,Stack Overflow上存在类似的问题,但似乎没有完全符合我的要求.

以下是我要做的事情:

  • 上传整个数据形式,其中一个是单个文件
  • 使用Codeigniter的文件上传库

直到这里,一切都很好.数据在我需要时进入我的数据库.但我也想通过AJAX帖子提交我的表格:

  • 使用原生HTML5文件API,而不是Flash或iframe解决方案
  • 优选地与低级.ajax()jQuery方法接口

我想我可以想象如何通过使用纯javascript在字段的值更改时自动上传文件来实现此目的,但我宁愿一下子在jQuery中提交所有内容.我认为通过查询字符串是不可能的,因为我需要传递整个文件对象,但我现在有点迷失在这一点上做什么.

这可以实现吗?

javascript ajax jquery html5 file-upload

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

在页面加载的第一个"焦点"事件上,Safari抖动/跳跃(错误?)

我目前在Safari上遇到一个非常令人沮丧的错误,我不知道还有什么地方可以转.

似乎触发事件的大多数元素(但不是全部,我无法辨别差异因素)focus将导致页面上所有转换或动画的元素跳转到顶部和左侧〜2px.这只发生在页面加载后的第一个焦点事件上.

看到这个bug有点烦人,因为它位于droplr.com的登录部分,而且我完全无法在JSFiddle上提取更简单的案例.

如果您有/创建帐户并登录,请单击此编辑图标以获取删除:

在此输入图像描述

你会看到在页面的第一个焦点,事情抖动.这是时间线,当页面上有一个单一的下降,我触发焦点在一个有问题的元素:

在此输入图像描述

随着更多的下降,它只是更多相同,但似乎最多约40个油漆.而探查者并没有暗示任何邪恶的东西.只是通过jQuery内部之旅.

如果不是通过translate3d或者放置元素matix3d,我只是使用topleft,这个bug消失了.经过几个小时的调试,我完全失去了.

希望有人看到类似的东西,可以看看,或者可以给我关于调试后续步骤的建议.

非常感谢!

更新:戴夫Desandro 建议这是3D加速,所以我用一个translate相反的尝试,但果然,这不会导致抖动.我不知道为什么硬件加速会focus发生事件,但只有一次.

我已经尝试在页面加载时将transformZ设置为0以继续并提升硬件,但也没有运气.欢迎任何更多的想法.

javascript safari jquery webkit css-animations

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

Ruby Greed Koan - 我怎样才能改善我的if/then汤?

我正在研究Ruby Koans,以便尝试学习Ruby,到目前为止,这非常好.我已经得到了贪婪的koan,在写这篇文章的时候是183.我有一个有效的解决方案,但我觉得我只拼凑了一堆if/then逻辑而且我不是拥抱Ruby模式.

在下面的代码中,您是否有方法指出我更全面地接受Ruby模式?(我的代码包含在"MY CODE [BEGINS | ENDS] HERE"评论中.

# Greed is a dice game where you roll up to five dice to accumulate
# points.  The following "score" function will be used calculate the
# score of a single roll of the dice.
#
# A greed roll is scored as follows:
#
# * A set of three ones is 1000 points
#
# * A set of three numbers (other than ones) is worth 100 times the
# …
Run Code Online (Sandbox Code Playgroud)

ruby

14
推荐指数
4
解决办法
4819
查看次数

找到最后一个重点元素

我想确定哪个元素在一系列输入中具有最后焦点,这些输入是由用户动态添加的.此代码只能获取页面加载时可用的输入:

$('input.item').focus(function(){
    $(this).siblings('ul').slideDown();
});
Run Code Online (Sandbox Code Playgroud)

这段代码可以看到所有曾经有过焦点的元素:

$('input.item').live('focus', function(){
    $(this).siblings('ul').slideDown();
});
Run Code Online (Sandbox Code Playgroud)

HTML结构是这样的:

<ul>
    <li><input class="item" name="goals[]">
    <ul>
        <li>long list here</li>
        <li>long list here</li>
        <li>long list here</li>
    </ul></li>
</ul>
<a href="#" id="add">Add another</a>
Run Code Online (Sandbox Code Playgroud)

在页面加载时,单个输入加载.然后每次添加另一个,创建并附加顶部无序列表的内容的新副本,并且新输入获得焦点.当每个人都获得焦点时,我想在其下方显示列表.但我似乎无法"关注现在或将来存在的最近关注的元素."

澄清一下:我不是在寻找DOM树中最后一个元素.我正在寻找当前具有焦点的元素,即使原始页面加载时不存在所述元素.

这张图片http://droplr.com/174l8H+

所以在上面的图像中,如果我要关注第二个元素,那么单词列表应该出现在第二个元素下面.我的焦点目前是最后一个元素,所以在那里显示单词.

我有某种基本假设错了吗?

javascript jquery

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

如何控制DOCUMENT_ROOT在localhost和live服务器上工作?

为了保持URL在版本控制的项目中工作,我一直在使用$ _SERVER ['DOCUMENT_ROOT'].问题是,我在一个文件夹中开发项目,所以我得到了这个:

$ _SERVER ['DOCUMENT_ROOT'].'/folder/path/to/file.php'

当我上线时,我通常只想要以下内容:

$ _SERVER ['DOCUMENT_ROOT'].'/path/to/file.php'

我知道世界上存在的问题比删除和添加这个文件夹名称还要大,但有没有办法可以轻松实现自动化?我可以以某种方式在本地设置我的文档根目录以包含我正在使用的文件夹吗?我对事情的运作方式有根本的误解吗?这种东西有点新,并希望尽可能多地学习并真正理解"为什么".

非常感谢!

php localhost

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

PHP中的初学者数据缓存

我正在使用simpleXML来浏览Twitter XML文件的XML结果,但我完全迷失了使用PHP缓存结果.这篇文章似乎有所帮助,但我也遇到了memcache(以及memcached.来吧,名字.),我不知道该怎么做.

我正在使用这个:

$sxml = simplexml_load_file(
    'http://api.twitter.com/1/qworky/lists/qworkyteam/statuses.xml');

foreach($sxml->status as $status){
    $name = $status->user->name;
    $image = $status->user->profile_image_url;
    $update = $status->text;
    $url = "http://twitter.com/" . $status->user->screen_name;
}
Run Code Online (Sandbox Code Playgroud)

简单地将Twitter列表的XML数据存储到可用变量中.但是正确的做法是什么?如果缓存文件超过十分钟,则创建缓存文件并仅运行此PHP块,否则提供缓存变量?如何在缓存文件和DOM之间来回传递缓存变量?哎呀,缓存文件有什么样的扩展名和文件名?

非常感谢,无论如何,你可以在这里向我指出一个健康的方向.

php twitter caching

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

JSONP用于跨站点书签指导

我正在寻找一个跨站点书签,它获取一个突出显示的单词,将其传递给CodeIgniter方法(domain.com/controller/method),并通过字典API返回定义.我有一个骨架在单个域上运行良好,但我希望扩展它以使用JSONP跨域.但我觉得不清楚.

我知道我需要从远程位置加载脚本并将其注入当前上下文中.我相信我需要在页面上显示突出显示的单词,然后调用一个类似于domain.com/controller/method/word的URL 来获取该脚本.然后它变得模糊.

我想我基本上有两个问题:

  • 我在哪里包含必要的javascript来处理通过XMLHTTPRequest解析和传递单词?我认为这将是我将在新环境中注入的脚本的SRC.这是否在我的相关CodeIgniter方法中?或者这个新脚本是否来自与相关方法在同一服务器上的随机位置,只需调用它?

答:这不是对XMLHTTPRequest的补充,这取代了它,因此完全删除了该步骤.新脚本调用该方法,通过查询字符串传递必要信息,并接收响应中的JSON数组.

  • 我是否正确理解我最终会从方法中传递JSON响应word(json_encode($array));

答:是的,我会把它传回去callbackFunctionName(json_encode($array));.

更新

我把上面三个答案中的两个答案包括在内.如果有人能够彻底解释事情,我当然会将他们的答案标记为正确,否则我会在答案中阐述我的绊脚石.我仍然不知道在哪里编写回调函数以及我将在JS中使用它做什么.

非常感谢您提供的任何帮助.

javascript json jsonp bookmarklet

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

在CodeIgniter会话中存储具有相同名称的多个输入

我已经在CodeIgniter论坛上发布了这个并且也耗尽了论坛搜索引擎,所以如果交叉发布是不赞成的,那么道歉.

基本上,我有一个输入,设置为<input type="text" name="goal">.根据用户的请求,他们可以添加另一个目标,该目标会向DOM发送重复项.我需要做的是在我的CodeIgniter控制器中获取这些值并将它们存储在会话变量中.我的控制器目前正在构建:

function goalsAdd(){
    $meeting_title = $this->input->post('topic');
    $meeting_hours = $this->input->post('hours');
    $meeting_minutes = $this->input->post('minutes');
    $meeting_goals = $this->input->post('goal');
    $meeting_time = $meeting_hours . ":" . $meeting_minutes;

    $sessionData = array(
        'totaltime' => $meeting_time,
        'title' => $meeting_title,
        'goals' => $meeting_goals
    );

    $this->session->set_userdata($sessionData);
    $this->load->view('test', $sessionData);
}
Run Code Online (Sandbox Code Playgroud)

目前,显然,我的控制器获取每个输入的值,在其唤醒中写入先前的值,只留下最终值的字符串.但是,我需要存储这些,所以我可以在后续页面上打印它们.

我想我想做的是扩展输入类,以便能够调用$ this-> input-> posts('goal').最终,我需要将其他数组存储到会话值.但我完全乐于接受实施建议.

非常感谢您提供的任何帮助.

php foreach codeigniter

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

SimpleXML返回多个对象,我该如何获取数据?

我正在使用simpleXML来解析这个xml文件.这是我用来访问YouTube API的Feed.我想将最新的视频嵌入到对象中并显示接下来的四个缩略图.

所以我正在使用simplexml_load_file它,使用foreach循环来访问每个feed中的值.

我可以访问这些值没有问题,但我遇到的问题是它将每个视频存储在一个单独的SimpleXMLElement Object.我无法控制我正在访问哪个对象,因为它们没有存储在数组中.所以我不能说,$thumb[4]或者说$entry[4]->thumb.

我尝试使用SimpleXMLIterator,但无论出于何种原因,具有相同开头的任何值都呈现为空白.例如,视频可能有以下十一种变体:

而这些将分别呈现为[1]="",[2]="",[3]="",等.

我很乐意为任何可以提供帮助的人提供更多信息!

编辑

这是我的结果的print_r.这是在一个变量上完成的,让您了解我面临的结构问题.整个print_r($ entry)将为XML文件中的每个节点提供变量.

SimpleXMLElement Object
(
    [0] => 159
)
SimpleXMLElement Object
(
    [0] => 44
)
Run Code Online (Sandbox Code Playgroud)

此外,print_r只是在PHP块内部进行测试.我实际上是想在HTML中的回声中访问变量.

php xml simplexml youtube-api

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