Canadian passenger Dan So, 41, filmed people around him frantically trying to stand as objects fell and shattered around them as Royal Caribbean’s Explorer of the Seas capsized violently during a storm off its coast of Africa last week – with objects around them smashing to the ground.
“It was like the Titanic,” So told Kennedy News and Media, seeing “people screaming and glasses breaking.”
“I thought this could be the end and the ship would go into the water,” he added of the alarming “45 degree” tilt.
“I took out my mobile phone and texted my colleagues, telling them I don’t know what’s going to happen and to be careful. I was writing my last message, thinking I was going to die,” added the 41-year-old, who was traveling on a cruise ship for the first time in his life.
One passenger was reportedly injured during the bad weather as passengers were taken to their rooms for an hour for necessary checks to be carried out.
The ship made an unscheduled stop in Las Palmas to help the injured passenger before continuing on its way, the company said.
A cruise ship tilted 45 degrees in the Atlantic ocean causing chaos on board pic.twitter.com/97LcAMQ5L9
— Daily Loud (@DailyLoud) November 11, 2024
Melania Trump: Not moving into the White House – “This time it will be different”
Black Friday: What consumers should watch out for
Brazil: Man strapped with explosives detonates outside Supreme Court
Kostas Martakis: “When I entered, some people told me to undress”
#Horror #Storm #hits #cruise #ship #forces #list #degrees #Titanic #video
```javascript
It looks like you're working with a JavaScript snippet that involves conditional rendering and loading of various ad-related scripts on a webpage. The code is structured to handle several advertising services such as Google AdSense, Phaistos Adman, OneSignal, Disqus, and others. However, many of the script load calls are incomplete and commented or run into placeholders.
Here's a brief overview and some suggestions on how to enhance or structure it further:
### Code Review and Suggestions
1. **Complete the Placeholder URLs and IDs**:
The script contains placeholders (`"`) and commented-out sections where actual URLs or identifiers should be. Make sure you replace those placeholders with the correct URLs for the scripts you're trying to load.
2. **Async Load Functionality**:
Ensure the `asyncLoadScript` function is defined somewhere in your code. For example:
```javascript
function asyncLoadScript(src) {
const script = document.createElement('script');
script.src = src;
script.async = true;
document.head.appendChild(script);
}
```
3. **Properly Handle Timeout and Delays**:
Currently, there are several `setTimeout` calls. Check whether you need these delays, as they could interfere with loading time or user experience.
4. **Logging and Error Handling**:
Consider adding error handling or console logging within your `asyncLoadScript` function to trace if scripts load successfully or throw errors. Example:
```javascript
script.onload = () => console.log(`Loaded script: ${src}`);
script.onerror = () => console.error(`Error loading script: ${src}`);
```
5. **Cleaner Configuration for External Integrations**:
For third-party libraries (like OneSignal and Disqus), encapsulate their initialization in functions or classes to avoid polluting the global namespace and make the code more maintainable.
6. **Comment Descriptions**:
Continue to use comments wisely, but ensure they accurately describe what the functionality does. This helps maintainability.
7. **Code Structure**:
Organize related functionalities into functions or modules, which leads to better readability. For example:
```javascript
function initializeOneSignal() {
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(function(OneSignal) {
OneSignal.init({
appId: "487cc53b-3b66-4f84-8803-3a3a133043ab",
});
});
}
```
### Example of Revised Code Structure
Here's how part of your code might look after implementing some of the suggestions:
```javascript
} else {
document.querySelectorAll('.adsense-for-mobile').forEach(function(e) {
e.querySelector('.adsbygoogle').remove();
});
}
const adSenseSlots = document.querySelectorAll('.adsbygoogle');
if (adSenseSlots.length > 0) {
adSenseSlots.forEach(function(e) {
// Perform actions for each adsbygoogle slot
});
}
// Initialize OneSignal
function initializeOneSignal() {
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(function(OneSignal) {
OneSignal.init({
appId: "487cc53b-3b66-4f84-8803-3a3a133043ab",
});
});
}
// Disqus configuration
function initializeDisqus() {
var disqus_config = function() {
this.page.url = "YOUR_PAGE_URL"; // Set page URL
this.page.identifier = 1565586; // Set page identifier
};
setTimeout(function() {
var d = document;
var s = d.createElement('script');
s.src = "YOUR_DISQUS_URL"; // Replace with actual Disqus URL
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
}, 3000);
}
// Call initialization functions
initializeOneSignal();
initializeDisqus();
// Add other initializations similarly...
```
### Final Note
Make sure to test thoroughly after implementing changes to ensure that all ads and integrations load correctly and interactively across your web pages. If you encounter specific error messages or problematic behavior during testing, iteratively debugging those will be crucial.