ADVERTISEMENT

Shanghai residents frustrated by food shortages, prolonged lockdowns

Published Apr 2, 2022 08:05 am

SHANGHAI, China -- Shanghai residents voiced frustration Friday at a week of snap Covid lockdowns, complaining online about food shortages and bewildering stay-at-home orders.

AFP/MANILA BULLETIN


After initially vowing they would avoid a city-wide lockdown, officials changed tack this week and announced a phased shutdown which divided China's financial centre in two so authorities can test its 25 million residents.

A four-day lockdown of the Pudong area began on Monday, followed by stay-at-home orders for the densely populated Puxi zone that were meant to start on Friday.

But people in many Puxi neighbourhoods were suddenly ordered inside early on Thursday, while much of Pudong remained closed on Friday, angering residents on both sides.

"This is de facto city-wide lockdown," one Weibo user said. "Many Pudong streets and compounds are still in lockdown, few are lifted."

Authorities late Thursday published a complex "grid management" plan for reopening that would keep all residential compounds closed where a positive test is found.

The restrictions have led to panic-buying and a dire shortage of delivery drivers to get food to the millions now trapped at home.

Residents of some buildings have skirted restrictions by taking deliveries attached to ropes lowered to the ground, according to AFP reporters.

"It's complicated to buy food online, because the number of delivery people is limited," said Sun Jian, 29, a resident in Puxi.

She added that the lockdown had been "badly managed" as people were forced to queue together for Covid tests, adding to the risk of transmission.

"What everyone is most afraid of now is not getting sick, but being sent to isolation rooms in makeshift facilities, where the conditions are very bad," she told AFP.

A Pudong resident surnamed Dong said his wife and three-year-old son were taken to centralised quarantine after testing positive, but have no access to hot water.

"No one tells us when the quarantine will be lifted," he told AFP.

"I'm quite anxious."

- 'Dynamic zero' policy -
China reported nearly 104,000 domestic Covid infections in March, with 90 percent of the recent cases found in Shanghai or northeastern Jilin province, health officials said Friday.

National Health Commission spokesman Mi Feng told a press briefing it remains necessary to "unswervingly" adhere to the "dynamic zero" policy of stamping out clusters as they emerge.

But other experts cautioned this may take time given the infectiousness of the Omicron variant and number of asymptomatic cases.

As patience starts to fray in Shanghai among a public who until now have broadly acquiesced to virus controls, top city official Ma Chunlei on Thursday made a rare admission of failure, saying the city was "insufficiently prepared" for the outbreak.

Shanghai is recording several thousand cases a day, making it the heart of China's worst Covid-19 outbreak since the country's first brush with the virus in Wuhan was controlled in early 2020.

More than 7,300 virus cases were recorded nationwide on Friday. While tiny compared with many countries, the case numbers are alarming to China's leadersh
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.