Pagination – Best options for scrolling through a dynamically updated list

We have a list of very dynamic items. New items are added to the list frequently (possibly every few seconds).

The elements can also be rearranged (say, they have been sorted by "last updated" and one is being updated by the system).

Our problem is scrolling in this list. If the user sorts the list by "Recent" and, for example, looks at the top 20 paged items for 20 seconds, you can scroll down. Maybe 5-10 elements have been created now.

If we naively query the database to get articles "20-40" (the next "page", even though it's actually a scroll), we get duplicate articles.

We tried very hard in the backend to query our list on a specific date – we send a "Get Me Items 20-40 FROM THIS TIME" to the backend.

However, this is a rather difficult requirement for the database schema and the backend. We can not support some of the things we want because we have to try to keep duplicate records for this "history".

Are there generally accepted strategies for dealing with such situations?

Monthly Raffle for Community Posters – Updated on September 8, 2019 | Forum Promotion


Community Billboards Sweepstake
The auction ends monthly at the end of each month 11 PM (EUROPEAN SUMMER TIME)In case you do not want to get any further


At this auction, you will be awarded a chance to promote your text link to the Community Billboards advertising space for the duration of the following month, one month after the end of each monthly raffle, in the forum index of Forum Promotion. Valid tickets for this raffle will be selected through Forum Promotion Shop from fully configured shop purchases. The Winner is randomly selected from Random.org's Monthly Purchases.

Please read the following rules before buying your raffle ticket.

Competition rules:

  • Obligatory ticket purchase via the User Shop – In order to be able to participate in this raffle, you must purchase your raffle ticket in the Usershop linked here (https://forumpromotion.net/forum/fp-shop/community-billboard-raffle.24/). Once you have purchased the ticket, you have 3 months to configure it to be valid in the month in which you complete all fields of the purchased item. Tickets are valid only for the raffle of the current month.
  • * UPDATED* Mandatory information in configuration – After purchasing and activating your ticket, you will be asked to provide the link, screenshot, title and text in your purchase. That way, we can add your purchase instantly if you win.
  • *NEW* Unlimited entries per competition – In this raffle you can buy up to as many tickets for this month's raffle as you finance. Once your purchased tickets have been configured, they are only valid for that month. That means you can not buy and configure it in a month, and expect to use it for the next month.
  • End of the auction – Only ticket purchases that were configured before the end of the current month count. Those who buy their tickets and configure them in advance will be eligible for the current raffle of the month.

Information about the bid form
IMPORTANT!
After purchase, you will find the following form, which you must complete using the configuration button in the "Active purchases" section of the inventory page (https://forumpromotion.net/forum/fp-shop/inventory/). ).
Your purchase is not valid for the current draw of the month, unless the purchased item is completed via the configuration button as follows.

URL:
link Title:
Link Description:
Screenshot:


Raffle Costs: Fifty (50) FP $
Monthly entries close on: Last day of each month at 23.00. (EUROPEAN SUMMER TIME)

When creating reports on R using MySQL Database, is my database updated to MySQL?

I use MySQL to store my data. To analyze the data, I would like to be able to create monthly reports on R. So far, I have been able to connect to MySQL dbConnect However, I want to make sure that none of my customizations affect the database in MySQL. Below is the code I used to import the database / table to R.

install.packages("RODBC")
library(RODBC)
Data<-dbConnect(drv, username="", password="", dbname ="")
Table1 <- fetch(dbSendQuery(Data, "select * from Table"),-1)

Use of fetch Function I can load the table in R, but I want to make sure I do not change it in MySQL at the same time. Would applying operations, adding columns, etc. affect the original database in MySQL?

reactjs – React useState is not updated immediately in the component function

I have a feature that sets my data when changing a selection. It works halfway – It will be updated as expected in the following change. Obviously, that's not ideal. I'm obviously doing something wrong, but I'm not sure what ?!

Any guidance where I'm wrong would be great. Thanks!

const App = () => {

    const (data, setData) = useState(());
    const (filteredData, filterData) = useState(());

    useEffect(() => {
        const getData = async () => {
            const result = await axios('/myapi');
            setData(result.data);           
        };
        getData();
    }, ());

    const handleChange = (e) => {
        const value = e.target.value;   

        filterData(data.filter(function( obj ) {
            return obj.name === value;
        }));        

        // This doesn't work as expected - On subsequent function call it returns the previous function calls data.
        console.log(filteredData)
        setData(filteredData)
    }

    return (
        // ...
        // Select with onChange={(e) => handleChange(e)}
        // ...
    );

}

Google Sheets Is it possible to automatically update a value through data validation when the source is updated

Basically, I have some fields on a page with a simple "list from one area" data check that retrieves its items from some fields on another page.
If I update the values ​​on the second page, the review drop-down menu will be refreshed, but the field on the first page will not be changed.

Is there a way to set it up to be updated on the first page if I select a value on the first page using the data validation drop-down list and then change the value on the second page?

I assume that what I looked for needed a kind of macro. I wondered if a dropdown is possible. If you select a value in the list, a reference (that is, = A1) is inserted instead of the raw value.

What does "device connected – updated usage information for some apps" mean in the Play Store?

You may be sharing usage and diagnostic information of this device with Google. In this particular case, this means that the Google Play Store was connected to its server and the usage information of some apps was updated. The information may be when you last used the apps, how long, etc.

Chrome for Android – Google PlayStore updated usage information for some apps

put on hold as unclear what you ask of Firelord 1 hour ago

Please clarify your specific problem or add additional details to highlight exactly what you need. As it is currently written, it is difficult to say exactly what you are asking. For more information about this question, visit the Questions and Answers page. If this question can be reformulated to match the rules in the Help, edit the question.

Custom Search is updated when you submit and does not return results

The custom search is updated when sending, and does not return any results. I'm not sure what's wrong with the code, but if anyone could take a look to find out what I'm missing, I'd be very grateful. Thank you in advance.

front-page.php

EJES ESTRATÉGICOS

1

DESAROLLO INTEGRAL DE TALENTO

2

APOYO AL BEISBOL INFANTIL Y JUVENIL

3

IMPULSO DE CONCEPTO "BEISBOL" EN MÉXICO

'ranking', 'hide_empty' => false, ) ); ?>

Ranking name; ?>

Ranking Selecciona tu estado
    $v ) { echo '
  • ' . $v . '
  • '; } ?>

scripts.js

/*ranking filter select*/
  $(".filters-select").on("change", function() {
    ranking();
  });

  /*ranking filter search*/
  var ts = $(".quicksearch").val();
  $(".quicksearch").attr("data-search", ts);
  $(".quicksearch").keyup(function(e) {
    var ts = $(this).val();
    $(".quicksearch").attr("data-search", ts);
    ranking();
  });

  $(".filters-ranking .players-state").mCustomScrollbar({
    scrollButtons: { enable: true }
  });
  $(".players-state li").click(function() {
    var val = $(this).attr("data-value");
    $(".players-state").attr("data-state", val);
    ranking();
  });

  /*for first load*/
  function ranking() {
    $(".filters-ranking .players-results").mCustomScrollbar("destroy");
    var position = $(".filters-select option:selected").val();
    var ranking = $(".s-raking .title-bar").attr("data-ranking");
    var search = $(".quicksearch").attr("data-search");
    var state = $(".players-state").attr("data-state");

    $.ajax({
      url: ajaxurl,
      type: "post",
      data: {
        action: "players",
        position: position,
        ranking: ranking,
        search: search,
        state: state
      },
      success: function(response) {
        $("#ajax-content").html(response);
        $(".filters-ranking .players-results").mCustomScrollbar({
          scrollButtons: { enable: true }
        });
      }
    });

    $.ajax({
      url: ajaxurl,
      type: "post",
      data: {
        action: "playersmain",
        position: position,
        ranking: ranking,
        search: search,
        state: state
      },
      success: function(response) {
        $(".ajax-content2").html(response);
      }
    });
  }
  ranking();

  /*ranking filter select MLB*/
  $(".filters-select-MLB").on("change", function() {
    ranking2();
  });
  function ranking2() {
    $(".ranking-wrap .players-results").mCustomScrollbar("destroy");
    var position = $(".filters-select-MLB option:selected").val();

    $.ajax({
      url: ajaxurl,
      type: "post",
      data: {
        action: "playersMLB",
        position: position
      },
      success: function(response) {
        $("#ajax-content-MLB").html(response);
        $(".ranking-wrap .players-results").mCustomScrollbar({
          scrollButtons: { enable: true }
        });
      }
    });
  }
  ranking2();

functions.php

add_action( 'wp_ajax_nopriv_players', 'players' );
add_action( 'wp_ajax_players', 'players' );
function players() {

    $position = $_POST('position');
    $ranking = $_POST('ranking');
    $search = $_POST('search');
    $state = $_POST('state');

    $args = array(
        'post_type'  => 'players_lpm',
        'posts_per_page' => -1,
        's' => $search,
        'tax_query' => array(
            array(
                'taxonomy' => 'ranking',
                'field'    => 'slug',
                'terms'    => $ranking
            )
        ),
        'meta_query' => array(
        array( 'key' => 'position', 'value' => $position, 'compare' => 'LIKE' ),
        array( 'key' => 'state', 'value' => $state, 'compare' => 'LIKE' ),
        'relation' => 'AND'
        )
    );

    $the_query = new WP_Query( $args ); $i2 = '1';
    echo '
    '; while ($the_query -> have_posts()) : $the_query -> the_post(); echo '
  • '.$i2.''.get_the_title().'
  • '; $i2++; endwhile; wp_reset_postdata(); echo '
'; die(); } add_action( 'wp_ajax_nopriv_playersmain', 'playersmain' ); add_action( 'wp_ajax_playersmain', 'playersmain' ); function playersmain() { $position = $_POST('position'); $ranking = $_POST('ranking'); $search = $_POST('search'); $state = $_POST('state'); $args = array( 'post_type' => 'players_lpm', 'posts_per_page' => -1, 's' => $search, 'tax_query' => array( array( 'taxonomy' => 'ranking', 'field' => 'slug', 'terms' => $ranking ) ), 'meta_query' => array( array( 'key' => 'position', 'value' => $position, 'compare' => 'LIKE' ), array( 'key' => 'state', 'value' => $state, 'compare' => 'LIKE' ), 'relation' => 'AND' ) ); $the_query = new WP_Query( $args ); $i2 = '1'; while ($the_query -> have_posts()) : $the_query -> the_post(); echo '
  • '.$i2.''.get_the_title().'
  • '; $i2++; endwhile; wp_reset_postdata(); die(); }

    The site is https://probeis.mx and the search box is shown in the following image:
    Enter image description here