热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RPiWin10IoT上的Javascript和DOM操作效率-JavascriptandDOMmanipulationefficiencyonRPiWin10IoT

BackgroundIvecreatedaslideshowapplicationwithasp.net(C#)andhtml5css3javascript(wab
Background

I've created a slideshow application with asp.net (C#) and html5/css3/Javascript (w/ a bit of jQuery). I'm trying to display this on a Raspberry Pi 2 device running Windows 10 (IoT version) inside the Windows Universal WebView component.

我用asp.net(C#)和html5 / css3 / Javascript(带有点jQuery)创建了一个幻灯片应用程序。我试图在Windows Universal WebView组件中运行Windows 10(IoT版本)的Raspberry Pi 2设备上显示它。

I'm having issues with slides lagging. My slideshow is based off of one div with 3 background images:

我遇到了幻灯片滞后的问题。我的幻灯片演示基于一个带有3个背景图像的div:

  1. The top image is the slide image. Displayed with background-size: contain.
  2. 顶部图像是幻灯片图像。显示背景大小:包含。

  3. The middle image is a transparent gradient meant to lay over the bottom image for affect.
  4. 中间的图像是一个透明的渐变,旨在覆盖底部图像的影响。

  5. The bottom image is server generated on image upload and is a zoomed and blurred image meant to give a kind of gradient splash mapping of color hot zones. Any image artifacts left from this process are smoothed by image #2.
  6. 底部图像是在图像上传时生成的服务器,是一个缩放和模糊的图像,旨在提供一种颜色热区的渐变溅射映射。图像#2对从该过程留下的任何图像伪像进行平滑处理。

Problem

I switch the background image with one line of code:

我用一行代码切换背景图像:

slide.style.backgroundImage = "url(" + slides[slideIndex % slides.length] + "), " +
                              "url(../images/egg-shell.png), " +
                              "url(" + blurred[slideIndex % blurred.length] + ")";

Works great in my browser, however, on the Raspberry Pi the bottom image with middle image overlayed displayed way before the top image.

在我的浏览器中工作得很好,但是,在Raspberry Pi上,底部图像与中间图像重叠显示在顶部图像之前。

Abnormalities

I have had to do a couple things to make this work with the Raspberry Pi and Webview component, I only list these because they might be causing my problem:

我不得不做几件事来使用Raspberry Pi和Webview组件,我只列出这些因为它们可能导致我的问题:

  • After changing the background image, I have to set the slide element's display property to none, then back to block to redraw the background image else it won't change.
  • 更改背景图像后,我必须将幻灯片元素的显示属性设置为无,然后返回到块以重绘背景图像,否则它将不会更改。

  • I'm preloading images by loading a bunch of JS Image objects with paths specified by webservice, then waiting for each image to finish reporting .onload to start the slideshow.
  • 我通过加载一堆带有webservice指定的路径的JS Image对象来预加载图像,然后等待每个图像完成报告.onload以启动幻灯片放映。


The whole application is pretty lightweight. If needed I can provide it but there must be something simple I'm missing. I don't know the efficiency if I were to load each image in a separate element and then set z-indexs. Nor do I know if the efficiency would increase by letting the images load in separate slides behind the current one. This is why the question is asking about DOM manipulation and Javascript. At any rate, thanks for reading this long explanation and hopefully you can help!

整个应用程序非常轻量级。如果需要我可以提供它,但必须有一些我想念的简单。如果我要在单独的元素中加载每个图像然后设置z-indexs,我不知道效率。我也不知道是否通过让图像加载到当前幻灯片后面的单独幻灯片来提高效率。这就是为什么问题是询问DOM操作和Javascript。无论如何,感谢您阅读这篇长篇解释,希望您能提供帮助!

1 个解决方案

#1


0  

Like this: http://jsfiddle.net/utwqsb45/ or if you prefer

像这样:http://jsfiddle.net/utwqsb45/或者如果你愿意的话

$(function($){

var $slides = $('.slide');
  
function transition(){
    var $current = $('.slide.showing'),
        $next = $('.slide[data-number="' + parseInt($current.data('number') + 1) + '"]');
    if (!$next.length) {
        $next = $('.slide[data-number="1"]');
    }
    requestAnimationFrame(function(){
      $current.removeClass('showing');
      $next.addClass('showing');
    });
}
  
setInterval(transition, 1000);

})($);
.slide {
  width: 99%;
  height: 99%;
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  display: none;
  margin: 0 auto;
}

.slide.showing {
  display: block;
}

one
two
three


推荐阅读
  • 本文详细介绍了 jQuery 的入门知识与实战应用,首先讲解了如何引入 jQuery 库及入口函数的使用方法,为初学者提供了清晰的操作指南。此外,还深入探讨了 jQuery 在实际项目中的多种应用场景,包括 DOM 操作、事件处理和 AJAX 请求等,帮助读者全面掌握 jQuery 的核心功能与技巧。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 使用jqTransform插件美化表单
    jqTransform 是由 DFC Engineering 开发的一款 jQuery 插件,专用于美化表单元素,操作简便,能够美化包括输入框、单选按钮、多行文本域、下拉选择框和复选框在内的所有表单元素。 ... [详细]
  • 通过 CSS 中的 transition 属性,可以轻松实现元素状态变化时的平滑过渡效果。本文将详细介绍如何使用 transition 属性,并提供一个具体的示例。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在本文中,我们将深入探讨 jQuery 中的 DOM 操作与事件处理技术,通过实现类似 Yahoo 邮箱登录框的提示效果来展示其强大功能。我们将详细介绍如何利用简洁的 jQuery 代码提升用户体验,并分享一些实用的示例。同时,我们还会解析这些示例中涉及的具体操作和事件处理方法。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • MSP430F5438 ADC12模块应用与学习心得
    在最近的实践中,我深入研究了MSP430F5438的ADC12模块。尽管该模块的功能相对简单,但通过实际操作,我对MSP430F5438A和MSP430F5438之间的差异有了更深刻的理解。本文将分享这些学习心得,并探讨如何更好地利用ADC12模块进行数据采集和处理。 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
  • 在HTML5应用中,Accordion(手风琴,又称抽屉)效果因其独特的展开和折叠样式而广泛使用。本文探讨了三种不同的Accordion交互效果,通过层次结构优化信息展示和页面布局,提升用户体验。这些效果不仅增强了视觉效果,还提高了内容的可访问性和互动性。 ... [详细]
  • 《精通 jQuery》第六章:深入解析与实战应用
    《精通 jQuery》第六章:深入解析与实战应用本章详细探讨了 Ajax 技术的核心机制及其实际应用。Ajax 通过 XMLHttpRequest 对象实现客户端与服务器之间的异步数据交换,从而在不重新加载整个页面的情况下更新部分内容。这种技术不仅提升了用户体验,还提高了应用的响应速度和效率。此外,本章还介绍了如何利用 jQuery 简化 Ajax 操作,并提供了多个实战案例,帮助读者更好地理解和掌握这一重要技术。 ... [详细]
author-avatar
手机用户2502885123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有